PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 3
Иван кали Отправлено: 12 Апреля, 2017 - 07:20:25 • Тема: древовидный массив • Форум: Вопросы новичков

Ответов: 5
Просмотров: 520
благодарю за ответы! )
Иван кали Отправлено: 03 Апреля, 2017 - 16:44:09 • Тема: древовидный массив • Форум: Вопросы новичков

Ответов: 5
Просмотров: 520
andrewkard пишет:
Не получается с рекурсией, делайте без, это же возможно.


всё, сделал без неё )
решил с помощью запроса к базе
сначала достал id нужных категорий с простого массива
PHP:
скопировать код в буфер обмена
  1.  
  2. function list_category($array, $category_id){
  3.     if(!$category_id) return false;
  4.         foreach($array as $item){
  5.         if($item['parent_id'] == $category_id){
  6.         $data .= $item['category_id']  . ",";
  7.   }}
  8.     return $data;
  9. }


и потом с базы вытащил свои массивы

PHP:
скопировать код в буфер обмена
  1.  
  2. function childs($list_category = false){
  3.     if($list_category){
  4.         $query = "SELECT * FROM category WHERE category_id IN($list_category)";
  5.     }else{
  6.         $query = "SELECT * FROM category ";
  7.     }
  8.     $res = mysql_query($query) ;
  9.     $category = array();
  10.     while($row = mysql_fetch_assoc($res)){
  11.         $category] = $row;
  12.     }
  13.     return $category
  14. }


но с массивом было бы интересно разобраться )
спасибо за внимание )
Иван кали Отправлено: 03 Апреля, 2017 - 09:49:19 • Тема: древовидный массив • Форум: Вопросы новичков

Ответов: 5
Просмотров: 520
всем привет! у меня меню построено так: достаем записи из бд(id, title, parent), из них строим массив, и его переделываем в дерево дописывая child.
получается такое дерево
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  [5] => Array
  3.         (
  4.             [category_id] => 5
  5.             [category_name] => корневой
  6.             [parent_id] => 0
  7.             [childs] => Array
  8.                 (
  9.                     [15] => Array
  10.                         (
  11.                             [category_id] => 15
  12.                             [category_name] => категория 1
  13.                             [parent_id] => 5
  14.                         )
  15.  
  16.                     [16] => Array
  17.                         (
  18.                             [category_id] => 16
  19.                             [category_name] => категория 2
  20.                             [parent_id] => 5
  21.                             [childs] => Array
  22.                                 (
  23.                                     [18] => Array
  24.                                         (
  25.                                             [category_id] => 18
  26.                                             [category_name] => категория 2.1
  27.                                             [parent_id] => 16
  28.                                         )
  29.  
  30.                                     [19] => Array
  31.                                         (
  32.                                             [category_id] => 19
  33.                                             [category_name] => категория 2.2
  34.                                             [parent_id] => 16
  35.                                         )))
  36.  


я пытаюсь при обращении к категории получить её детей

делаю так
PHP:
скопировать код в буфер обмена
  1.  
  2. function childs($array, $category_id = 0) {
  3.    
  4. foreach ($array as $key) {
  5.         if ($key['category_id'] == $category_id) {
  6.             $data = $key['childs'];
  7.           }
  8. }
  9.     return $data;
  10. }
  11.  

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

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB