嵌套数组while循环

时间:2011-07-18 21:57:09

标签: php arrays nested

我使用嵌套的while循环创建一个如下所示的嵌套数组:

[276] => Array
    (
        [0] => 302
    )

[279] => Array
    (
        [0] => 290
        [1] => 291
        [1] => 223

但由于某种原因,我只得到一个出现在279以下的嵌套数组,但我知道 我正在查询的数据至少返回了应该在279数组下的12条记录。

这是我的while循环代码:

while ($row = mysql_fetch_assoc($result)) {
    $term_id = $row[term_id];

    // Look up Children Categories
    $sql2 = "SELECT * FROM wp_term_taxonomy wpt where parent = $row[term_id]";

    // execute query:
    $result2 = mysql_query($sql2) or die('A error occured: ' . mysql_error());

    // fetch results:
    $count_2 = "0";
    while ($row2 = mysql_fetch_assoc($result2)) {
        $term_id2 = $row2['term_id'];
        $arr[$term_id] = array($count_2 => $row2[term_id]); 
        $count_2++;
    }

}

有人能告诉我我做错了什么吗?它就像嵌套数组每次重置一样,所以我只在嵌套数组下得到一条记录。

1 个答案:

答案 0 :(得分:1)

您的代码:

$arr[$term_id] = array($count_2 => $row2[term_id]); 

这会为$arr[$term_id]分配一个新数组。如果您已经在循环的上一次迭代中放置了项目,它会覆盖它,或者在您放置它时“重置它”,它不会附加到现有数组。你告诉它这样做。

$arr[$term_id][$count_2] = $row2[term_id];