對不起,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