Разбивка массива в цикле

гриша667

Новичок
Здравствуйте, я создаю горизонтальное меню для своего сайта, меню сложное именно для вывода его на экран.
Вот как оно должно выглядеть:


Таблица mysql имеет следующие столбцы:

price_id; price_name; perent_id; icon;

В model.php я создал следующую модель:
PHP:
/*==============выборка массива ============================*/


function catalog (){
    $query = "SELECT * FROM price";
    $res = mysql_query($query) or die (mysql_query());
   
   
/*===============массив категорий ==================*/

$cat = array();
while ($row = mysql_fetch_assoc($res)) {
        if(!$row['perent_id']){
            $cat [$row['price_id']][] = $row['price_name'];
           
        } else{
            $cat[$row['perent_id']]['sub'][$row['price_id']]['ico'][$row['icon']] =$row['icon'];
        }
            $cat[$row['perent_id']]['sub'][$row['price_id']]['name'][$row['price_name']]= $row['price_name'];
       
}
    return $cat;
}
создал массив CAT, распечатка выглядит вот так:
PHP:
Array
(
    [1] => Array
        (
            [0] => price_name c 0 значением
            [sub] => Array
                (
                    [21] => Array
                        (
                            [ico] => Array
                                (
                                    [icon] =>  картинка.png
                                )

                            [name] => Array
                                (
                                    [price_name] => название с ссылкой
                                )

                        )

                    [22] => Array
                        (
                            [ico] => Array
                                (
                                    [icon] =>  картинка.png
                                )

                            [name] => Array
                                (
                                      [price_name] => название с ссылкой
                                )

                        )

                    [23] => Array
                        (
                            [ico] => Array
                                (
                                    [icon] =>  картинка.png
                                )

                            [name] => Array
                                (
                                    [price_name] => название с ссылкой
                                )

                        )

                    [24] => Array
                        (
                            [ico] => Array
                                (
                                  [icon] =>  картинка.png
                                )

                            [name] => Array
                                (
                                    [price_name] => название с ссылкой
                                )

                        )

                    [25] => Array
                        (
                            [ico] => Array
                                (
                                    [icon]=>  картинка.png
                                )

                            [name] => Array
                                (
                                    [price_name] => название с ссылкой
                                )

                        )

                    [26] => Array
                        (
                            [ico] => Array
                                (
                                    [icon] =>  картинка.png
                                )

                            [name] => Array
                                (
                                    [price_name] => название с ссылкой
                                )

                        )

                    [27] => Array
                        (
                            [ico] => Array
                                (
                                    [icon] => картинка.png
                                )

                            [name] => Array
                                (
                                    [price_name] => название с ссылкой
                                )

                        )

                    [28] => Array
                        (
                            [ico] => Array
                                (
                                    [icon] => картинка.png
                                )

                            [name] => Array
                                (
                                    [price_name] => название с ссылкой
                                )

                        )

                )

        )

    [0] => Array
        (
            [sub] => Array
                (
                    [1] => Array
                        (
                            [name] => Array
                                (
                                    [ price_name c 0 значением] => название категории
                                )

                        )

                    [2] => Array
                        (
                            [name] => Array
                                (
                                    [ price_name c 0 значением] => название категории
                                )

                        )

                    [3] => Array
                        (
                            [name] => Array
                                (
                                    [ price_name c 0 значением] => название категории

                        )

                    [4] => Array
                        (
                            [name] => Array
                                (
                                  [ price_name c 0 значением] => название категории
                                )

                        )

                    [5] => Array
                        (
                            [name] => Array
                                (
                                  [ price_name c 0 значением]=> название категории

                        )

                    [6] => Array
                        (
                            [name] => Array
                                (
                                    [ price_name c 0 значением]=> название категории
                                )

                        )

                    [7] => Array
                        (
                            [name] => Array
                                (
                                    [ price_name c 0 значением] => название категории
                                )

                        )

                    [8] => Array
                        (
                            [name] => Array
                                (
                                    [ price_name c 0 значением] => название категории

                        )


    [2] => Array
        (
            [0] => price_name c 0 значением
            [sub] => Array
                (
                    [29] => Array
                        (
                            [ico] => Array
                                (
                                    [icon]=>  картинка.png
                                )

                            [name] => Array
                                (
                                    [price_name] => название с ссылкой

                        )

                    [30] => Array
                        (
                            [ico] => Array
                                (
                                    [icon] => картинка.png
                                )

                            [name] => Array
                                (
                                    [price_name]=> название с ссылкой
                                )

                        )

                    [31] => Array
                        (
                            [ico] => Array
                                (
                                    [icon] => картинка.png
                                )

                            [name] => Array
                                (
                                    [price_name] => название с ссылкой

                        )

                )

        )
Распечатка массива включает в себя категории и под категории, категориям присвоено в алгоритме 0 значение для удобства формирования меню,
выделенное красным это часть кода непонятного мне(то есть как оно с формировалось из выше указанного алгоритма.)
Вторая проблема как с помощью циклов разбить массив на категории и вывести в различных местах меню.
P.S. Очень прошу помощи!!!!!!!!!!!!!!!!!!!!!!
 

WMix

герр M:)ller
Партнер клуба
Что вы имеете ввиду?
так угараю над количеством воскл знаков,
PHP:
if(!$row['perent_id']){
            $cat [$row['price_id']][] = $row['price_name'];
        } else{
            $cat[$row['perent_id']]['sub'][$row['price_id']]['ico'][$row['icon']] =$row['icon'];
        }
// заметил, что эта переменная всегда устанавливается?
            $cat[$row['perent_id']]['sub'][$row['price_id']]['name'][$row['price_name']]= $row['price_name'];
 

гриша667

Новичок
Ну, да. Везде ставлю переменную ROW может её изменить на каком-то этапе?
 

гриша667

Новичок
устранил проблему с дополнительным выходом непонятной части меню, надо было переставить } после второй переменной когда писал в первый раз не заметил. Но все таки подскажите как ограничить вывод элементов массива и как начинать перебор массива в цикле с нужного места?
 

гриша667

Новичок
Дело в шляпе)))) в цикле сначала задал функцию array_slice затем прошелся по массиву с помощью foreach тем самым я могу вытаскивать различные элементы массива и задавать их количество в различных участках сайта.
 
Сверху