- array_unshift: documentation ( source)
- var_export: documentation ( source)
<?php
$arr = [
'USA' =>
[
'Alabama' =>
[
'Montgomery',
'Birmingham'
],
'Arizona' =>
[
'Phoenix',
'Mesa',
'Gilbert'
]
],
'Germany' =>
[
'West Germany' =>
[
'Bonn',
'Cologne'
]
]
];
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($arr));
$keys = array();
foreach ($iterator as $key => $value) {
// Build long key name based on parent keys
$key = [$key];
for ($i = $iterator->getDepth() - 1; $i >= 0; $i--) {
//$key = $iterator->getSubIterator($i)->key() . '_' . $key;
array_unshift($key, $iterator->getSubIterator($i)->key());
}
$key[] = $value;
$keys[] = $key;
}
var_export($keys);