<?php
$a=[
[
'id'=>'1',
'parent_id'=>'0',
'comment'=>'Comment1'
],
[
'id'=>'2',
'parent_id'=>'1',
'comment'=>'Comment2'
],
[
'id'=>'3',
'parent_id'=>'0',
'comment'=>'Comment3'
],
[
'id'=>'4',
'parent_id'=>'0',
'comment'=>'Comment4'
],
[
'id'=>'5',
'parent_id'=>'3',
'comment'=>'Comment5'
]
];
// Раскидываем по категориям
$arr_cat = array();
foreach ($a as $value) {
if(empty($arr_cat[$value['parent_id']])) {
$arr_cat[$value['parent_id']] = array();
}
$arr_cat[$value['parent_id']][] = $value;
}
function view_cat($arr,$parent_id = 0) {
//Условия выхода из рекурсии
if(empty($arr[$parent_id])) {
return;
}
echo '<ul>';
//перебираем в цикле массив и выводим на экран
for($i = 0; $i < count($arr[$parent_id]);$i++) {
echo '<li>'.$arr[$parent_id][$i]['comment'];
//рекурсия - проверяем нет ли дочерних категорий
view_cat($arr,$arr[$parent_id][$i]['id']);
echo '</li>';
}
echo '</ul>';
}
echo '<div style="width:300px;float:left; padding:10px; border:1px solid #074776">';
view_cat($arr_cat);
echo '</div>';
?>