Articles of рекурсии

in_array на объектах с круговыми ссылками

Я строю массив объектов. Мне нужно, чтобы этот массив содержал только один экземпляр данного объекта, имеющий несколько ссылок на один и тот же объект, должен вызывать исключение. Для этого я использую следующий код: public function addField ($name, iface\Node $field) { // Prevent the same field being added multiple times if (!in_array ($field, $this -> fields)) […]

Возвращаемое значение рекурсивной функции PHP

Я написал рекурсивную функцию в PHP для обрезания текста. Обрезанный текст будет … прикреплен к концу. Необработанный текст будет возвращен в исходном состоянии. Он работает, если текст соответствует максимальной ширине. Однако, если он не соответствует заданной ширине, функция не вернет значение, но должно. Кажется, что весь оператор возврата игнорируется. Если я заменил возврат эхом, он […]

Преобразование функции из рекурсии в итерацию

У меня есть эта функция, которую я написал, которая ужасно медленна, поскольку php не справляется с рекурсией. Я пытаюсь преобразовать его в цикл while, но у меня возникают проблемы с тем, чтобы обмануть голову, как это сделать. Может ли кто-нибудь дать мне несколько советов? public function findRoute($curLoc, $distanceSoFar, $expectedValue) { $this->locationsVisited[$curLoc] = true; $expectedValue += […]

Удалить все элементы определенного типа из XML-документа с помощью PHP

У меня есть то, что должно быть легкой задачей: удалите узлы <places> и их потомки из документа XML, оставив другие узлы. Я пробовал этот код, но он не работал … $document->preserveWhiteSpace = false; $books = $xpath->query('piletilve_info/places'); //echo "4"; foreach ($books as $places) { while($places->hasChildNodes()) { $places->removeChild($places->childNodes->item(0)); } $places->parentNode->removeChild($places); } : $document->preserveWhiteSpace = false; $books = […]

Рекурсивная функция удаления каталога для PHP?

Я использую PHP для перемещения содержимого подпапки изображений GalleryName / изображения / в другую папку. После перемещения мне нужно удалить каталог GalleryName и все остальное внутри него . Я знаю, что rmdir() не будет работать, если каталог не пуст. Я потратил некоторое время на создание рекурсивной функции для scandir() начиная с вершины, а затем unlink() […]

Структуру дерева PHP для категорий и подкатегорий без циклического запроса

Я пытаюсь создать список категорий с любым количеством подкатегорий, где подкатегории могут также иметь свои собственные подкатегории. Я выбрал все категории из Mysql db, кошки находятся в стандартном списке ассоциированных массивов, каждая категория имеет id, name, parentid, где parentid равен 0, если это верхний уровень. Я в основном хочу иметь возможность брать одноуровневый массив кошек […]

Преобразование массива путей в список UL

У меня есть таблица в базе данных, которая содержит множество путей к страницам моего сайта. Каждый путь указан только один раз. В настоящее время у меня очень длинная и запутанная серия запросов и PHP, чтобы вытащить все это и переписать данные в неупорядоченный список (для создания меню для моего сайта). Похоже, что существует, вероятно, относительно […]

PHP: Как удалить вложенные теги и перенести их не вложенным образом?

Мне нужно удалить все вхождения тега стиля bb из строки. Теги могут быть вложенными, и это то, где я терпит неудачу. Мне также необходимо переместить каждый тег и содержимое в конец строки и заменить тег на элемент HTML. Я попытался сыграть с регулярным выражением и preg_replace_callback, но я до сих пор не увенчался успехом. Я […]

PHP: вложенное меню с рекурсивной функцией, расширяющее только некоторые узлы (не все дерево)

У меня есть этот массив, называемый $nested (он длинный, но я попытался получить всеобъемлющий сценарий): Array ( [1] => Array ( [id] => 1 [parent] => 0 [title] => Page 1 ) [2] => Array ( [id] => 2 [parent] => 0 [title] => Page 2 ) [3] => Array ( [id] => 3 [parent] […]

дерево базы данных в многомерный массив

У меня есть простое дерево базы данных с parentid, и я хочу прочитать db и получить массив, подобный выше Array ( Title: Category 1 Children => Array ( => Title: Category 1.1 => Title: Category 1.2 Children => Array ( => Title: Category 1.2.1 ) ) ) Я пытаюсь реализовать с помощью кода выше function […]