0
我有这样的多维数组。它在var_dump()格式中。递归获取多维数组的键
array(1) {
[4]=>
array(1) {
[2]=>
array(1) {
[5]=>
array(1) {
[1]=>
array(1) {
[3]=>
array(1) {
[6]=>
array(0) {
}
}
}
}
}
}
}
又名$多阵列,我想从中得到所有的键和设置他们得到阵列这样。
[0=>4, 1=>2, 2=>5, 3=>1, 4=>3, 5=>6] aka **$keysArray**.
试过这样。
foreach(new \RecursiveIteratorIterator(
new \RecursiveArrayIterator(**$multiArray**),
\RecursiveIteratorIterator::SELF_FIRST)
as $key => $value) {
**$keysArray[]** = $key;
}
也这样。
function array_keys_multi(array $array) {
$keys = [];
foreach ($array as $key => $value) {
$keys[] = $key;
if (is_array($value)) {
$keys = array_merge($keys, $this->array_keys_multi($value));
}
}
return $keys;
}
但它们都返回不正确的数据。我如何获得所有密钥?
应导致是:'[4 => 2,2 => 5,5 => 1,1,1 => 3,3 => 6]'? –
@E_p,不。结果需要像这样。 [0 => 4,1 => 2,2 => 5,3 => 1,4 => 3,5 => 6] – user3266517
“RecursiveIteratorIterator”方法有什么问题? – sevavietl