While döngüsünde dinamik dizi anahtarı

2 Cevap php

Ben bu çalışma almak için çalışıyorum:

Ben "derin" Her döngü alır bir dizi var. Ben orada derin "çocuklar" anahtar için yeni bir dizi eklemeniz gerekir.

while($row = mysql_fetch_assoc($res)) {
    array_push($json["children"],
                        array(
                            "id" => "$x",
                            "name" => "Start",
                            "children" => array()
                        )
                    );
}

Yani, bir döngü içinde olurdu:

array_push($json["children"] ...
array_push($json["children"][0]["children"] ...
array_push($json["children"][0]["children"][0]["children"] ...

... Vb. Bu gibi anahtar Seçici dinamiğine almak konusunda herhangi bir fikir?

$selector = "[children][0][children][0][children]";
array_push($json$selector);

2 Cevap

Hmmm - referans olarak atamak için belki daha iyi:

$children =& $json["children"];
while($row = mysql_fetch_assoc($res)) {
    array_push($children,
        array(
            "id" => "$x",
            "name" => "Start",
            "children" => array()
        )
    );
    $children =& $children[0]['children'];
}
$json = array();
$rows = range('a', 'c');
foreach (array_reverse($rows) as $x) {
    $json = array('id' => $x, 'name' => 'start', 'children' => array($json));
}
print_r($json);

Bir dize yolu üzerinden bir dizi okumak istiyorsanız, endekslerde dize bölmek ve sonra değerini almak için böyle bir şey yapabilirsiniz

function f($arr, $indices) {
    foreach ($indices as $key) {
        if (!isset($arr[$key])) {
            return null;
        }
        $arr = $arr[$key];
    }
    return $arr;
}