Всем хай! Короче я туплю уже, выручайте советом. Есть категории и под-категории: Как сделать так, чтобы ссылками были только конечные категории, а верхнии были обычным текстом, я никак не могу врубиться, то ли я сплю, то ли, что, но - это нужно решить сейчас... Есть рекурсия: Код (PHP): public static function recursive($id,$level=0) { if(isset(self::$allCats[$id])) { $str=self::strrpt('- ',$level); foreach(self::$allCats as $val) { if($id==$val['parentId']) { self::$return.=$str.$val['id'].$val['name'].'<br>'; self::recursive($val['id'],$level+1); } } } } Она возвращает такие вещи и тут внимание!!!!, мне нужно все которые выделенные жирным сделать ссылками, то есть - это конечные категории в которых больше нет под-категорий: Тёплые полы - GREEN BOX - Национальный комфорт - - Маты под плитку одножильные - - Маты под плитку двужильные - - Маты под стяжку одножильные - - Маты под стяжку двужильныех - Теплолюкс - - Тёплый пол под стяжку одножильный - - Тёплый пол под плитку одножильный - - Тёплый пол под стяжку двужильный - - Тёплый пол под плитку двужильный - Теплофол-нано - Терморегуляторы - Теплодор - CALEO Все что выделено - это конечные категории в них нет под категорий, но они ей могут являться. Вот, что мне нужно дописать, какое условие? Задрачиваюсь уже 2 час, то блин недобор то еще какая - то хуйня получается, хочется это как то в одном методе сварганить и подать на блюдечке, есть мыслишки?
у конечных видимо count(self::$allCats[$id]) == 0 ? Ну или так: empty(self::$allCats[$id]) Добавлено спустя 2 минуты 1 секунду: другая мысль: array_walk_recursive() вызывает колбек-функцию для конечных узлов, но не для подмассивов.
Лучше один раз составить простой-простой, но медленный-медленный скрипт, который добавит к каждой категории количество "детей". И проверять потом. А вообще, я намучился в одном крупном проекте с традиционным parentID, на следующий уже перешёл на Nested Sets. Надоело на каждый чих рекурсивную функцию писать
artoodetoo, self::$allCats это все категории, так что там они в любом случае есть. а про валк не понял о чем ты имеешь ввиду?
проверять не все, а конкретную категорию self::$allCats[$i], если я конечно правильно понял array_walk_recursive исполняет пользовательскую процедуру только с конечными "листьями" многомерного массива. это можно использовать при подходящей структуре данных.
надо было изначально разделять "папки" и "файлы" в массиве. а в кавычках они написаны, потому что используются в переносном смысле. =)
Так, в таком случае получается - это тоже самое. Тут дело такое, категории, товары и данные делятся все, но на части, сортируются и сохраняются. Потом, - это выводится когда запрашиваем, а не сразу все. По этому вопрос встал только конечные из всех полученных. =) А это нужно сделать за ранее...