0
我想重置大型多維數組中的鍵。我已經找到了解決方案,它實際上是工作:重置多維數組中的數組鍵,遞歸式,通過引用
$fix_keys = function(array $array) use (&$fix_keys)
{
foreach($array as $k => $val)
{
if (is_array($val))
{
$array[$k] = $fix_keys($val);
}
}
return array_values($array);
};
,問題是,如果我通過大陣列,它變得緩慢,消耗內存。怎麼樣與工作參考重構:
$fix_keys = function(array &$array) use (&$fix_keys)
{
foreach($array as $k => &$val)
{
if (is_array($val))
{
$array[$k] = $fix_keys($val);
}
}
unset($val);
$array = array_values($array);
};
但它搞砸了數組,我得到的是[0] => null
。哪裏不對?
編輯:所以輸入數據:
$a = [
'a' => 1,
'b' => 2,
'c' => [
'aa' => 11,
'bb' => [
'ccc' => 1
],
'cc' => 33
]
];
,我想有:
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
array(3) {
[0]=>
int(11)
[1]=>
array(1) {
[0]=>
int(1)
}
[2]=>
int(33)
}
}
你可以張貼一些輸入與預期輸出沿 –