从混合数组中删除键并重新索引
Remove key from mixed array and reindex
我是 php 的 postgresql 新手。我使用 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
)
如何在从数组中删除特定键后重新索引数字索引?
您可以按关键字过滤数组。 Live demo.
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);
我是 php 的 postgresql 新手。我使用 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
)
如何在从数组中删除特定键后重新索引数字索引?
您可以按关键字过滤数组。 Live demo.
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);