Articles of рекурсия

Обратный скошенный массив к многомерному

В другом потоке я спросил о том, чтобы сгладить массив с определенным стилем, чтобы получить что-то вроде этого: array(4) { ["one"]=> string(9) "one_value" ["two-four"]=> string(10) "four_value" ["two-five"]=> string(10) "five_value" ["three-six-seven"]=> string(11) "seven_value" } У меня там очень хорошая помощь, но теперь мне интересно, как бы я отменил этот метод, чтобы снова получить тот же оригинальный […]

Простая реализация метода генерации лабиринта (произвольная DFS)

В интервью мой интервьюер задал мне этот вопрос: Разработайте функцию генерации случайного лабиринта Это довольно сложный вопрос, который нужно решить за 30 минут, если вы еще не решили этот вопрос. В Интернете есть много решений, но ни один из них не кажется простым. Метод должен уважать это ограничение: он должен принять размер лабиринта (квадратный лабиринт […]

Динамически изменять значения ассоциативного массива в php

Предположим, что у меня есть массив вроде следующего: $settings = array( "age" => "25", "data" => array( "name" => "John Dewey", "zip_code" => "00000" ) ); Вот мой вклад: $target_directory = "data.name"; // targets $settings["data"]["name"] $new_value = "Micheal"; // I want to change // $settings["data"]["name"] with this value Я хочу что-то похожее на следующее: $new_array […]

Рекурсивно заменить ключи в массиве

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

Рекурсивный порядок массива с id и parent_id структурой

Итак, я получил этот массив (данные собираются из базы данных): Array ( [0] => Array ( [id] => 1 [parent_id] => 0 ) [1] => Array ( [id] => 2 [parent_id] => 0 ) [2] => Array ( [id] => 3 [parent_id] => 2 ) [3] => Array ( [id] => 4 [parent_id] => 2 […]

PHPExcel_Style_Fill бесконечная рекурсия

Я использую библиотеку PHPExcel 1.7.9 для работы с файлами Excel . Во-первых, я создаю шаблон, стилю и отполирую его. Затем, чтобы избежать жесткого кодирования стиля, используя указанную выше библиотеку, я открываю этот шаблон, изменяю некоторые значения и сохраняю их как новый .xlsx файл. Сначала мы получаем этот стиль из ячеек. $this->styles = array() ; $this->styles['category'] […]

Сортировка файлов по каталогу с помощью каталога DirectoryTreeIterator

Я нашел пару вопросов ( этот и этот вопрос ), связанные с итераторами SPL, но я не уверен, насколько они полезны в моем случае, поскольку я использую довольно высокий уровень расширения RecursiveIteratorIterator ; DirectoryTreeIterator . Может ли кто-нибудь, возможно, показать мне, как изменить DirectoryTreeIterator или как отсортировать возвращаемый массив по каталогу после того, как он […]

Создатель запросов Laravel для рекурсивных результатов? Например, id, parent_id

Поэтому у меня есть данные, структурированные следующим образом: id|parent_id|name 1 |null |foo 2 |1 |bar 3 |2 |baz Так что в основном foo->bar->baz . Я не понимаю, как использовать конструктор запросов laravel для получения строк для дочерней строки, а затем ее предков (до parent_id == null ). Можно ли это сделать с помощью laravel? Я […]

Проверка массивов для рекурсии

Каков наилучший способ проверить, является ли массив рекурсивным в PHP? Учитывая следующий код: <?php $myarray = array('test',123); $myarray[] = &$myarray; print_r($myarray); ?> Из руководства PHP: Print_r () будет отображать RECURSION, когда он попадает в третий элемент массива. Кажется, нет никакого другого способа сканирования массива для рекурсивных ссылок, поэтому, если вам нужно проверить их, вам придется […]

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

Я написал рекурсивную функцию PHP для удаления папки. Интересно, как мне изменить эту функцию для удаления всех файлов и папок в веб-хостинге, за исключением заданного массива файлов и имен папок (например, cgi-bin, .htaccess)? КСТАТИ использовать эту функцию, чтобы полностью удалить вызывающий каталог, подобный этому recursive_remove_directory('path/to/directory/to/delete'); для использования этой функции для удаления каталога, вызывающего вот так: […]