Цель: Нужно, чтобы функция вернула массив с использованием функции, при этом чтоб область видимости не распространялась за пределы данной функции. Не знаю, как правильно и сказать)
Дан массив: '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-ов не понаделал.
_____________
..Работает - не трогай!