<?php
$obj = json_decode('{
"Group1": {
"Blue": {
"Round": [
"Harold",
"Arthur",
"Tom"
]
},
"Green": {
"Round": [
"Harold"
],
"Circle": [
"Todd",
"Mike"
]
}
},
"Group2": {
"Blue": {
"Round": [
"Peter"
]
}
}
}', true);
function traverse_array($array,$key="",$prev="",&$final_op=array())
{
if(is_array($array))
{
$prev .= $key." - ";
foreach ($array as $key => $value) {
traverse_array($value,$key,$prev,$final_op);
}
}
else
{
$prev =trim($prev," - ");
$final_op[$prev][]=$array;
}
return $final_op;
}
$data = traverse_array($obj);
foreach ($data as $key => $value) {
echo $key." (".implode(",", $value).")";
echo PHP_EOL;
}
- Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 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.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
- Group1 - Blue - Round (Harold,Arthur,Tom)
Group1 - Green - Round (Harold)
Group1 - Green - Circle (Todd,Mike)
Group2 - Blue - Round (Peter)
preferences:
262.92 ms | 404 KiB | 302 Q