<?php
$array = [
[
'name' => 'a',
'url' => 'b',
],
[
'no-name' => 'foo',
],
[
'name' => 'c',
'url' => 'd',
'children' => [
[
'name' => 'e',
'url' => 'f'
]
]
]
];
function recurseAll(&$node) {
if (is_array($node)) {
if (isset($node['name'])) {
// do something with the qualifying array...
$node[] = 'push a new element into array level';
}
foreach ($node as &$childNode) {
recurseAll($childNode);
}
}
}
recurseAll($array);
var_export($array);
- Output for 7.2.0 - 7.2.34, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
- array (
0 =>
array (
'name' => 'a',
'url' => 'b',
0 => 'push a new element into array level',
),
1 =>
array (
'no-name' => 'foo',
),
2 =>
array (
'name' => 'c',
'url' => 'd',
'children' =>
array (
0 =>
array (
'name' => 'e',
'url' => 'f',
0 => 'push a new element into array level',
),
),
0 => 'push a new element into array level',
),
)
preferences:
148.35 ms | 408 KiB | 5 Q