[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Рекурсивный поиск максимума в массиве
lyalyuk
Задача.
есть массив положительных целых чисел вида:
$arr = array (
1,
2,
3,
101,
array (
105,
2,
array (56,1)
),
7

);
Максимальная глубина вложености не известна.
Нужно написать функцию которая найдет в массиве максимум

я написал:
function MaxArray($arr) {
if (empty($max)) $max = -1;
if(is_array($arr))
{
for($i=0; $i<count($arr); $i++)
{
if(is_array($arr[$i]))
{
return MaxArray($arr[$i]);
}
else
{
if ($max < $arr[$i]) $max = $arr[$i];
}
}
}
else
{
if ($max <= $arr) {
$max = $arr;
return $max;
}
}
}


почему не работает $max = MaxArray; ??




Спустя 6 минут, 15 секунд (12.12.2011 - 18:33) johniek_comp написал(а):
Цитата
почему не работает $max = MaxArray; ??

сессия?

Спустя 8 минут, 7 секунд (12.12.2011 - 18:41) dadli написал(а):
lyalyuk
$arr = array(1,2,3,101,array(105,2,array(56,1)),7);


function aa($mas) {
$newarr = array();
foreach ($mas as $val) {
if (is_array($val)) {
array_splice($newarr,count($newarr),1,aa($val));
}
else {
array_splice($newarr,count($newarr),1,$val);
}
}

return max($newarr);
}

echo aa($arr);

Спустя 19 часов, 31 секунда (13.12.2011 - 13:42) lyalyuk написал(а):
Цитата (johniek_comp @ 12.12.2011 - 15:33)
Цитата
почему не работает $max = MaxArray; ??

сессия?

типо того. Сдаю экзамен на elance.

Спустя 12 минут, 45 секунд (13.12.2011 - 13:55) lyalyuk написал(а):
dadli, Спасибо большое
Быстрый ответ:

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