Я что-то упускаю? При попытке реализовать алгоритм я не могу получить возвращаемое значение для функции. Первоначально, пытаясь вернуть массив, с которым я столкнулся, простые типы не будут работать. ПРИМЕЧАНИЕ. Это упрощенная версия, чтобы проиллюстрировать эту точку. Я знаю, что для иллюстрированного кода можно использовать нечто вроде print_r (array_map (function ($ x) {return $ x + […]
Мне пришлось придумать способ преобразования ключей массива с помощью undescores (underscore_case) в camelCase. Это нужно было сделать рекурсивно, так как я не знал, какие массивы будут переданы методу. Я придумал это: private function convertKeysToCamelCase($apiResponseArray) { $arr = []; foreach ($apiResponseArray as $key => $value) { if (preg_match('/_/', $key)) { preg_match('/[^_]*/', $key, $m); preg_match('/(_)([a-zA-Z]*)/', $key, $v); […]
Предположим, у меня есть папка с именем parent Там есть много подпапок, таких как child1 , child2 и т. Д. В некоторых из этих «дочерних» папок есть файл в имени module.php . Как я могу рекурсивно проверять все подпапки parent папки и включать все файлы с именем module.php в мое приложение? Я попробовал ниже и […]
Я пытаюсь рекурсивно добавлять все файлы в свой проект, для этого я использовал эту функцию: <?php function RequireFiles() { $directory = new RecursiveDirectoryIterator(abspath . "lib/"); $recIterator = new RecursiveIteratorIterator($directory); foreach ($recIterator as $item) { print $item->getPathname() . "<br />"; //include $item->getPathname(); } } ?> взятые отсюда с незначительными изменениями . Моя проблема заключается в том, […]
У меня есть массив, который я создал в php с рекурсивной функцией, я не знаю, сколько измерений, как я могу использовать в Smarty? Я пытаюсь использовать этот код: {foreach $myArr as $items} <li> {$items.title} {if $item.submenu} <ul> {foreach $items.submenu as $items2} <li>{$items2.title}</li> {/foreach} </ul> {/if} </li> {/foreach} Но этот код предназначен только для двух уровней, […]
У меня есть объект $ branch, который может содержать другие объекты $ branch: $branch->children(); У каждого из них могут быть $ яблоки в качестве детей. $branch->apples(); Как я могу собрать все $ яблоки из $ ветви рекурсивно? function collectApples($branch){ $apples = array(); ? return $apples; }
Я адаптировал это из примера, который я нашел в сети … function ratio($a, $b) { $_a = $a; $_b = $b; while ($_b != 0) { $remainder = $_a % $_b; $_a = $_b; $_b = $remainder; } $gcd = abs($_a); return ($a / $gcd) . ':' . ($b / $gcd); } echo ratio(9, 3); […]
Как получить текущий уровень рекурсии в функции PHP? Я имею в виду, есть ли какая-нибудь «магическая» (или, в конечном итоге, нормальная) функция: function doSomething($things) { if (is_array($things)) { foreach ($things as $thing) { doSomething($thing); } } else { // This is what I want : echo current_recursion_level(); } } Я знаю, что могу использовать другой […]
Вот структура таблицы, которую я имею: CREATE TABLE menu ( menuid int(11) NOT NULL AUTO_INCREMENT, menuname varchar(100) NOT NULL DEFAULT '', menulink varchar(100) NOT NULL DEFAULT '', menuparentId int(11) NOT NULL DEFAULT '0', menuhasChild smallint(1) NOT NULL DEFAULT '0', menustatus smallint(1) NOT NULL DEFAULT '1', menuorder int(11) NOT NULL DEFAULT '0', PRIMARY KEY (menuid) ) […]
Я пытался копировать Gnu Find («find.») В PHP, но, похоже, невозможно приблизиться к его скорости. В реализациях PHP используется как минимум в два раза больше времени поиска. Существуют ли более быстрые способы сделать это с помощью PHP? EDIT: я добавил пример кода, используя реализацию SPL – его производительность равна итерационному подходу EDIT2: При вызове find […]