<?php
$array = array(
array("title" => 1, "children" => array(
array(
"selected" => true,
"key" => 100,
"children" => array()
)
),
array(
"selected" => true,
"key" => 500,
"children" => array()
),
array(
"selected" => true,
"key" => 200,
"children" => array(
array(
"selected" => true,
"key" => 300,
"children" => array(
array(
"selected" => true,
"key" => 400,
"children" => array()
)
)
)
)
)
)
);
$selectedValues = array();
$iterator = new \RecursiveIteratorIterator(new \RecursiveArrayIterator($array));
foreach ($iterator as $key => $value) {
if ($key == "key") {
echo $value .PHP_EOL;
var_dump($iterator->callGetChildren());
}
}
/*
$selectedValues = array();
$iterator = new \RecursiveIteratorIterator(new \RecursiveArrayIterator($array));
foreach ($iterator as $key => $value) {
if ($key == "selected") {
$depth = $iterator->getDepth();
$subIterator = $iterator->getSubIterator($depth);
foreach ($subIterator as $key2 => $value2) {
if ($key2 == "key") {
echo $value2 . PHP_EOL;
}
}
}
}
*/
preferences:
62.97 ms | 402 KiB | 5 Q