【发布时间】:2017-10-11 03:43:28
【问题描述】:
我有这样的多维数组。它采用 var_dump() 格式。
array(1) {
[4]=>
array(1) {
[2]=>
array(1) {
[5]=>
array(1) {
[1]=>
array(1) {
[3]=>
array(1) {
[6]=>
array(0) {
}
}
}
}
}
}
}
又名 $multiArray,我想从中获取所有键并将它们设置为像这样获取数组。
[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 => 3, 3 => 6]? -
@E_p ,不。结果需要是这样的。 [0=>4, 1=>2, 2=>5, 3=>1, 4=>3, 5=>6]
-
RecursiveIteratorIterator方法有什么问题?
标签: php arrays multidimensional-array get key