可能的重复:
如何展平多维数组? https://stackoverflow.com/questions/1319903/how-to-flatten-a-multidimensional-array
假设我有一个这样的数组:
array (
1 =>
array (
2 =>
array (
16 =>
array (
18 =>
array (
),
),
17 =>
array (
),
),
),
14 =>
array (
15 =>
array (
),
),
)
我将如何将其转换为这样的数组?
array(1,2,16,18,17,14,15);
抱歉,投票结果很接近。没有适当注意你想要钥匙。解决方案如下:
$iterator = new RecursiveIteratorIterator(
new RecursiveArrayIterator($arr),
RecursiveIteratorIterator::SELF_FIRST);
$keys = array();
然后要么
$keys = array();
foreach($iterator as $key => $val) {
$keys[] = $key;
}
或者直接使用迭代器实例
$keys = array();
for($iterator->rewind(); $iterator->valid(); $iterator->next()) {
$keys[] = $iterator->key();
}
或者比必要的更复杂
iterator_apply($iterator, function(Iterator $iterator) use (&$keys) {
$keys[] = $iterator->key();
return TRUE;
}, array($iterator));
gives
Array
(
[0] => 1
[1] => 2
[2] => 16
[3] => 18
[4] => 17
[5] => 14
[6] => 15
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)