Удалить ключ из смешанного массива и переиндексировать

Я новичок в postgresql с php. Я получаю массив ниже, используя pg_fetch_array () функция.

Array
(
[0] =>
[name] =>
[1] => 1
[status] => 1
[2] => C2005
[code] => C2005
)

после удаления индекса 1 и значение ключа statusЯ должен переиндексировать этот массив так, чтобы ожидаемый результат стал таким:

Array
(
[0] =>
[name] =>
[1] => C2005
[code] => C2005
)

Я старался

unset($row[1]);
unset($row['status'];
$foo = array_values($row);
echo "<pre>";
print_r($foo)
echo "</pre>";

и получил выход

Array
(
[0] =>
[name] =>
[2] => C2005
[code] => C2005
)

Как числовой индекс может быть переиндексирован после удаления определенных ключей из массива?

1

Решение

Вы можете отфильтровать массив по их ключу. Живая демо.

unset($array['status']);
$number_keys = array_values(array_filter($array, function($k){return is_int($k) && $k != 1;}, ARRAY_FILTER_USE_KEY));
$nonnumber_keys = array_filter($array, function($k){return is_string($k);}, ARRAY_FILTER_USE_KEY);
$result = array_merge($number_keys, $nonnumber_keys);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]