Ho provato con il seguente codice:

Codice PHP:
$json="[{"id":1},{"id":2,"children":[{"id":3},{"id":4},{"id":5,"children":[{"id":6},{"id":7},{"id":8}]},{"id":9},{"id":10}]},{"id":11},{"id":12}]";


$array json_decode($json);


foreach (
$array as $key => $jsons)
{
    foreach(
$jsons as $key => $value)
    {
        echo 
"$key > $value<br/>";
    }

ma a video ottengo stampati solo questi valori:

id > 1
id > 2
children > Array
id > 11
id > 12


dove devo correggere?
come posso scrivere un ciclo che funzioni correttamente a prescindere da come sono posizionati i valori ?