Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вывод меню с многомерного массива 
:(
    Опции темы
undefined
Дата 22.4.2011, 03:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 17.4.2009

Репутация: нет
Всего: нет



есть многомерный массив скажем $ cat_menu; ->
Код


Array
(
    [1] => Array
        (
            [node] => Array
                (
                    [id] => 1
                    [name] => ELECTRONICS
                    [parent] => 0
                )

            [childs] => Array
                (
                    [1] => Array
                        (
                            [node] => Array
                                (
                                    [id] => 2
                                    [name] => TELEVISIONS
                                    [parent] => 1
                                )

                            [childs] => Array
                                (
                                    [1] => Array
                                        (
                                            [node] => Array
                                                (
                                                    [id] => 3
                                                    [name] => TUBE
                                                    [parent] => 2
                                                )

                                            [childs] => 
                                        )

                                    [2] => Array
                                        (
                                            [node] => Array
                                                (
                                                    [id] => 4
                                                    [name] => LCD
                                                    [parent] => 2
                                                )

                                            [childs] => 
                                        )

                                    [3] => Array
                                        (
                                            [node] => Array
                                                (
                                                    [id] => 5
                                                    [name] => PLASMA
                                                    [parent] => 2
                                                )

                                            [childs] => 
                                        )

                                )

                        )

как его вывести?

PM MAIL   Вверх
NewDima
Дата 22.4.2011, 07:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: 10
Всего: 12



В каком вид вывести?
PM ICQ   Вверх
undefined
Дата 22.4.2011, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 17.4.2009

Репутация: нет
Всего: нет



мне надо с этого массива вывести меню, типа с контролера в вид,через foreach,как это сделать?
PM MAIL   Вверх
WolfAlone
Дата 22.4.2011, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: 1
Всего: 5



Я думаю Вам стоит почитать материал на тему "рекурсия" или "рекурсия PHP", там подобные задачи как раз решаются.


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
undefined
Дата 22.4.2011, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 17.4.2009

Репутация: нет
Всего: нет



опишу полностью, есть модель - с такими функциями 
Код

class Mmenu extends Db {
        
        
        function return_categories($parent)
        {
            $sql = "select * from category where parent='".$parent."'";
            $res = $this->sql($sql) ;
            return $res ;
        }
        
        function all_categories()
        {
            $sql = "SELECT id,name FROM category ";
            $res = $this->sql($sql) ;
            return $res ;
        }
    }

есть контроллер с функциями который обрабатывает их
Код

class Cmenu extends Mmenu 
    {
        
        function get_recurrent_db($parent=0)
                {
            
                $q=$this->return_categories($parent);
                while($res=mysql_fetch_assoc($q))
                    {
                    $i++;
                    $result1[$i]["node"]=$res;
                    $result1[$i]["childs"]=$this->get_recurrent_db($res["id"]);
                    }
                return $result1;
                }
                
        function get_recurrent_php(&$data,$parent=0)
                {
                foreach($data as $key => $v)
                    {
                    $i++;
                    if(($v["parent"]==$parent) && ($v["was"]===false))
                        {
                        $data[$v["id"]]["was"]=true;
                        $result[$v["id"]]["node"]=$v;
                        $result[$v["id"]]["childs"]=get_recurrent_php($data,$v["id"]);
                        }
                    }
                return $result;
                }
                
        function rec()
                {
            $q=$this->all_categories();
            while($res=mysql_fetch_assoc($q))
                {
                $data[$res["id"]]=$res;
                $data[$res["id"]]["was"]=false;
                }
                return $data;
                }
                
    }
весь этот результат -
Код

vmenu = new Cmenu() ;
$cat_menu = $vmenu->get_recurrent_db();
echo("<pre>");
//print_r($cat_menu );

у меня не получается вывести это все в виде, в $cat_menu -> находиться вышеуказанный массив
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0481 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.