Publish your project for free and start receiving offers from freelance contractors in serveral minutes after publication!

Сделать рекурсию на PHP

closed without completion
PHP


Работа только для тех кто знает как это сделать.

Нужно из этой многоуровневой рекурсии сделать одноуровневую 


в базе есть поля id, parent_id, name

массив из базы в $result

$cats = array();
foreach($result as $id => &$node){
   if(!$node['parent_id']) $cats[$id] = &$node;
   else $result[$node['parent_id']]['children'][$id] = &$node;
}

В $cats выводится многоуровневый массив


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


На скриншоте видно как это работает сейчас



Update #1 from 4 December 2016
$query = $db->query("SELECT * FROM comments");

while($row = $db->get_row($query)){
$result[$row['id']] = array();
foreach($row as $key => $value) $result[$row['id']][$key] = stripslashes($value);
}

$cats = array();

foreach($result as $id => &$node){
if(!$node['parent_id']) $cats[$id] = &$node;
else $result[$node['parent_id']]['children'][$id] = &$node;
}

print_r($cats);

Applications 3

Only registered users can view attachments.


  1. 1 day200 ₴
    Антон Мыслицкий
     522   8    0

    Могу сделать

    Ukraine Kyiv | 4 December 2016 |
  2. 1 day300 ₴
    Микола Ф.
     1997  verified   52    1

    Готовый сделать! Начну прям щас. Напишите мне.

    Ukraine Kyiv | 6 December 2016 |
  1. 1 day200 ₴
    Хусниддинхужа Абдурахимов
     90 

    Согласен?

    Uzbekistan Ташкент | 4 December 2016 |
  • $cats [0][1];

  • Sergey Archipov — project author
    Complain | 4 December 2016 |

    Не вариант, вложений может быть много

  • Тогда в цикл.

  • На скриншоте вообще ничего не видно (

  • У меня кстати сейчас похожая задача, пишите в ЛС, может вместе придумаем как решить

  • Sergey Archipov — project author
    Complain | 4 December 2016 |

    есть какие нибудь намеки в какую сторону копать уже практически все перепробывал

  • Пришлите скрин побольше и ещё раз про массив с результатом, какой хотите чтобы был и что дальше с ним будет

  • Sergey Archipov — project author
    Complain | 4 December 2016 |

    База ( Пример )

    table.jpg


    Результат ( то что сейчас делает скрипт )


    array.jpg


    $query = $db->query("SELECT * FROM comments");

    while($row = $db->get_row($query)){
    $result[$row['id']] = array();
    foreach($row as $key => $value) $result[$row['id']][$key] = stripslashes($value);
    }

    $cats = array();

    foreach($result as $id => &$node){
    if(!$node['parent_id']) $cats[$id] = &$node;
    else $result[$node['parent_id']]['children'][$id] = &$node;
    }

    print_r($cats);


    нужно то что вложено в массивы сделать друг за другом на одном уровне

  • Add

Client
Project published
4 December 2016
79 views
Contractor location
Labels