这是我的阵列:
$arr = [
1 => [
2 => "something",
3 => "something else"
],
2 => "foo br"
];
我需要重启所有密钥并从0
启动所有密钥。基于一些研究,我发现我必须使用array_values()
函数。但它只是使外部数组的键重新索引See。
如何将它应用于数组的所有键? (甚至是嵌套的)
答案 0 :(得分:4)
您可以使用array_values + recursively calling
自定义功能:
function arrayValuesRecursive($array) {
$array = array_values($array);
$countValues = count($array);
for ($i = 0; $i < $countValues; $i++ ) {
$subElement = $array[$i];
if (is_array($subElement)) {
$array[$i] = arrayValuesRecursive($subElement);
}
}
return $array;
}
$restructuredArray = arrayValuesRecursive($array);
答案 1 :(得分:2)
您可以使用这样的递归来实现它:
populationData.get(2017).put("Botswana", 45982637);
答案 2 :(得分:1)
您好以下代码
结帐<?php
$arr = [
1 => [
2 => "something",
3 => "something else"
],
2 => "foo br"
];
$reIndexedArray = array();
foreach($arr as $arrItr){
$reIndexedArray[] = count($arrItr) > 1 ? array_values($arrItr) : $arrItr;
}
print_r($reIndexedArray);
?>
输出
Array
(
[0] => Array
(
[0] => something
[1] => something else
)
[1] => foo br
)