я посмотрел. Вопрос по другому. Каким образом ты хочешь решить свою задачу? Какая задумка твоего кода?
error_reporting(E_ALL) и так не выводит ) первый раз чёт написать пытаюсь, вот оттуда и код.. Думал надо как то пройтись по массиву и проверить есть ли ключ [childs] если есть — доставать все [childs] которые лежат в 1 $list_category = list_category($categories_tree, $category_id); вроде сохранил вывод )) а на счёт параметров можно прям носом ткнуть? и почему 2 параметр (category_id?) должен по умолчанию значение иметь? он же из GET приходит.. если есть делаем, нет проходим мимо? )
Значение по умолчанию может быть равно и null. Потому что в программировании, когда у функции есть параметры, они все должны быть переданы, если для них не определено значение по умолчанию в сигнатуре функции. Перед ним желательно прописать PHP: ini_set('display_errors', 1); --- Добавлено --- И тут почитай: http://phpfaq.ru/debug
я вот понять не могу, нахера ты GETотм передаешь ключ и ищешь потом элемент массива с этим ключом. Можно же сразу в get все ключи положить и ничего не искать, а сразу обратиться к нужному элементу. Или я что-то не правильно понял?
если б я знал )) вобще все ключи и лежат в GET, а для функции я проверяю - если есть в GET ключ, я его ложу в переменную и передаю в функцию.. вроде так прописал ini_set('display_errors', 1); error_reporting(E_ALL) и добавил в функции if(!$category_id) return false; всё равно выдаёт ошибку если в Get нету id.. может в предыдущей функции где то не проверил, потом поищу. спасибо
вроде получилось у меня Код (Text): function list_category($array, $category_id){ if(!$category_id) return false; foreach($array as $item){ if($item['parent_id'] == $category_id){ $data .= $item['category_id'] . ","; } } return $data; } достаёт id детей но на вход не древовидный массив подается, а обычный всем спасибо за помощь! и за терпение ))
Хоспаде... эти ваши меню на чистом CSS делаются. С анимациями, блекджеком и курвами. Тут-то JQ на кой?
и снова я ) :facepalm: Код (Text): function list_category($array, $category_id){ if(!$category_id) return false; foreach($array as $item){ if($item['parent_id'] == $category_id){ $data .= $item . ","; } } return $data; } возвращает строку array, array. как поправить что бы эти два массива развернулись? проще тогда joomla или WP установить. совсем проще будет )
читал, на php.нет эти функции вроде аналогичны ) // Добавлять в отчет все PHP ошибки (см. список изменений) error_reporting(E_ALL); // Добавлять в отчет все PHP ошибки error_reporting(-1);
А еще есть уточнения интересные: В общем, лучше юзать предопределенные константы, а не играться с битовыми представлениями. Скажем так, надежнее оно и однозначнее.
потому что в $item - массив. Нужно пихать в строку его поля, а не его целиком. ПХП не может за тебя додумать, какое поле пихнуть в строку, поэтому пишет, что это массив =)
чёт ничего не получается у меня ) как вобще делается вывод категорий? может я изначально не туда пошёл: http://demos.thesoftwareguy.in/category-tree-php/ вот меню, нужно при обращении к hardware вывести на экран printers & monitors.
Код (Text): function childs($array, $category_id = 0) { foreach ($array as $element) { if ($element['category_id'] == $category_id) { $data = $element['childs']; } } return $data; } вот как тут теперь рекурсию вызвать или что сделать, что бы он вошел в $element['childs'] => он массив и там сделал тоже самое childs($element['childs'], $category_id) пробовал в else добавлять, но чет никак
тебе филя еще хз когда показал как. Проверяешь, является ли элемент массива массивом и если да, то заражаешь рекурсию.
решил с помощью запроса к базе сначала достал id нужных категорий с простого массива Код (Text): function list_category($array, $category_id){ if(!$category_id) return false; foreach($array as $item){ if($item['parent_id'] == $category_id){ $data .= $item['category_id'] . ","; }} return $data; } и потом с базы вытащил свои массивы Код (Text): function childs($list_category = false){ if($list_category){ $query = "SELECT * FROM category WHERE category_id IN($list_category)"; }else{ $query = "SELECT * FROM category "; } $res = mysql_query($query) ; $category = array(); while($row = mysql_fetch_assoc($res)){ $category] = $row; } return $category } но с массивом было бы интересно разобраться, как пройти по дереву и переходить в рекурсии из одного массива в другой. если кто то уделит 15 минут и напишет функцию, буду примного благодарен за урок ) всем спасибо! отдельное спасибо Fell-x и alexblack )