Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > php заполнение многомерного массива в цикле - баг?


Автор: Frozen_Coyote 31.5.2017, 16:14
Добрый день,

прошу помощи, совсем с ума схожу уже

есть результат выборки из базы user posted image

обрабатывающий результат код

Код


$tree = array();

        while($e = $res->fetch_array())
        {
            $tree[$e["folder_id"]] = array("obj_groups" => array());
            $tree[$e["folder_id"]]["obj_groups"][] = $e["group_name"];
        }


по моему замыслу должен вывести

Код

Array
(
    [1] => Array
        (
            [obj_groups] => Array
                (
                    [0] => Коляска тутиc
                    [1] => Коляска бамбола
                    [2] => Коляска геслейн
                )
        )

    [2] => Array
        (
            [obj_groups] => Array
                (
                    [0] => Автокресло авионаут
                    [1] => Автокресло наниа 2
                    [2] => Автокрело наниа 1
                )
        )

    [3] => Array
        (
            [obj_groups] => Array
                (
                    [0] => 
                )
        )
)



а выводится

Код

Array
(
    [1] => Array
        (
            [obj_groups] => Array
                (
                    [0] => Коляска  тутиc
                )
        )

    [2] => Array
        (
            [obj_groups] => Array
                (
                    [0] => Автокресло авионаут
                )
        )

    [3] => Array
        (
            [obj_groups] => Array
                (
                    [0] => 
                )
        )
)

 


т.е. добавляется только одна, последняя запись. В чем я накосячил? $tree[$e["folder_id"]]["obj_groups"][] = $e["group_name"]; пустые квадратные скобы - это добавление в массив нового члена а не присваивание элементу текущего значения


спасибо!

Автор: bars80080 6.6.2017, 13:00
дык, пятая строчка

            $tree[$e["folder_id"]] = array("obj_groups" => array());

перезаписывает весь предыдущий результат
удали её и посмотри что получится

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)