[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Рекурсивное наполнение массива
maximka787
Привет Мужики. Есть вопрос по поводу рекурсии. Сразу говорю, не обращайте внимание на сам пример (знаю, для поиска по массиву есть множество функций). Мне важно понять грамматику рекурсивной схемы, поэтому это лишь пример.

Цель: Нужно, чтобы функция вернула массив с использованием функции, при этом чтоб область видимости не распространялась за пределы данной функции. Не знаю, как правильно и сказать)

Дан массив: 'audi', 'bmw', 'lada', 'audi', 'audi', 'bmw'
Нужно получить на выводе вот так: Array ( [0] => 0 [1] => 3 [2] => 4 )

function get_all_cars($arr)
{
$out = array();

function tree($array, $find_string)
{
global $out2;

if(in_array($find_string, $array))
{
$key = array_search($find_string, $array);

$out2[] = $key;

unset($array[$key]);

tree($array, $find_string);
}

return $out2;
}

$out = tree($arr, 'audi'); // ищем в данном примере audi

return $out;
}



$cars = array('audi','bmw','lada','audi','audi', 'bmw');

print_r(get_all_cars($cars));

Я сделал вот такой пример, но по-моему иногда при работе возникают ошибки declare function, да и не уверен, что правильно вообще подошел к этой схеме и функции не будут пересекаться, и не уверен лишних global-ов не понаделал.

_____________
..Работает - не трогай!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.