Вложенный массив while loop - PullRequest
0 голосов
/ 19 июля 2011

Я использую вложенный цикл while для создания вложенного массива, который будет выглядеть следующим образом:

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

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

Но по какой-то причине я получаю только один вложенный массив, отображающий до 279, но я знаю данныеЯ запрашиваю, возвращает не менее 12 записей, которые должны быть в массиве 279.

Вот мой код цикла 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 Ответ

1 голос
/ 19 июля 2011

Ваш код:

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

Это назначает новый массив для $arr[$term_id].Он не добавляется к существующему массиву, если вы уже поместили туда элементы в предыдущей итерации цикла, он перезаписывает его или «сбрасывает», как вы его поместили.Вы сказали это сделать.

$arr[$term_id][$count_2] = $row2[term_id]; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...