parschakov
@parschakov
Начинающий изучать PHP и JS

Как упорядочить данные из массива (родитель-потомок)?

Здравствуйте. Не могу никак додуматься, опыта маловато, прошу помощи!

Есть массив $cats, вида:
[term_id] - порядковый номер.
[parent] - номер родителя, если значение 0, то он сам родитель.

Хочу упорядочить следующим видом:
Родитель
Родитель
-потомок
-потомок
-потомок
Родитель
...

То есть, если у родителя есть потомки, вывести их под родителем.

Делаю так, но ничего не получается:
$cats = get_terms('categories', $args);
foreach($cats as $cat) {
if($cat->parent == 0) {
echo $cat->name;
}
elseif  ($cat->parent != 0 && $cat->parent = $cat->term_id) {
echo '-'.$cat->name;
}
}
  • Вопрос задан
  • 241 просмотр
Пригласить эксперта
Ответы на вопрос 2
@MassTek
Web-developer
www.inphp.org/arts/doc/8

Напишите такую функцию. Получите удобный массив для вывода.
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Рекурсия в помощь, тут неплохо по шагам и коментами описано.
ваш массив в данном случае надо переформировать как в примере:

Выбираем все данные [...]и формируем ассоциативный массив $cats, ключем будет id родительской категорий.

foreach($cats as $cat){
        $newcats[$cat['parent_id']][$cat['id']] =  $cat;
    }
$cats = $newcats;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Depcon Екатеринбург
от 100 000 до 170 000 ₽
ManyChat Москва
от 150 000 ₽
от 210 000 до 250 000 ₽