对不起,closevote。没有充分注意你想要钥匙。溶液如下:
$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));
更复杂给出
Array
(
[0] => 1
[1] => 2
[2] => 16
[3] => 18
[4] => 17
[5] => 14
[6] => 15
)
使用var_export或给我们原始数组。 – 2010-11-19 07:46:00
@Elzo Valugi:我已经更新了我的问题。 – 2010-11-19 07:50:08
@戈登:它不完全一样。在OP中,值实际上是*键*。 – 2010-11-19 09:48:04