просто фунцкия max() не справляется, т.к. возвращает вложенный массив.
Форум → Программирование → PHP для идиотов → Найти максимальный элемент в массиве
Найти максимальный элемент в массиве
Страницы: ← Следующая страница →
-
-
8 апреля 2011 г. 17:53, спустя 18 минут 58 секунд
Sinkler, спасибо, кому интересно, вот:$array = array(1, 27, array(25, 362, array(13, 25)), 60);
function findMax($array)
{
foreach ($array as $value) {
if(is_array($value)) {
foreach ($value as $a) {
if(is_array($a)) {
foreach ($a as $b) {
$new_array[] = $b;
}
} else {
$new_array[] = $a;
}
}
}
else {
$new_array[] = $value;
}
}
return max($new_array);
}
echo findMax($array); -
-
-
-
8 апреля 2011 г. 18:21, спустя 4 минуты 38 секунд
Kikky, рекурсия - это должно у тебя быть. Тогда:
1. код будет значительно меньше и красивее
2. можно туда будет кидать хоть 23432948587-мерные массивы =) -
8 апреля 2011 г. 18:24, спустя 3 минуты 19 секунд
Kikky, рекурсия - это должно у тебя быть. Тогда:
1. код будет значительно меньше и красивее
2. можно туда будет кидать хоть 23432948587-мерные массивы =)
Ну, ну для рекурсии? =))) Будет stack overflow -
8 апреля 2011 г. 18:48, спустя 24 минуты 6 секунд
срамота
$arr = array(5, 1, array(3, 6), 2, 4);
array_walk_recursive($arr, create_function('$item', '{ global $max; $max = max($item, $max); }'));
echo $max;Спустя 250 сек.в принципе рекурсия раскладывается в итератор, просто здесь нах не надо.
вот любопытный пример: обход дерева папок без рекурсии
http://aidanlister.com/2009/06/executing-a-callback-for-all-files-in-a-directory/ιιlllιlllι унц-унц -
8 апреля 2011 г. 19:08, спустя 19 минут 44 секунды
artoodetoo, так просто оказывается :) ..спасибо всем. -
8 апреля 2011 г. 19:09, спустя 1 минуту 29 секунд
artoodetoo, в данной ситуации этот костыль конечно сканает, но я бы разбил задачу на 2 задачи.
1. array_flatten - написать .. которая multidimensial array => flat array
2. max …
ну и было бы
$max = max(Array::flatten($array));
так сказать, заказал бы себе code reuseСапожник без сапог -
9 апреля 2011 г. 2:46, спустя 7 часов 36 минут 48 секунд
phpdude, полностью согласенιιlllιlllι унц-унц -
9 апреля 2011 г. 10:25, спустя 7 часов 39 минут 8 секунд
array_flatten - написать
ну почему вот в рубях оно уже есть, а в пыхе писать надоне всё полезно, что в swap полезло -
9 апреля 2011 г. 10:55, спустя 29 минут 26 секунд
просто "слизать" проще, чем придумать))array_flatten - написать
ну почему вот в рубях оно уже есть, а в пыхе писать надо
да, тоже удивился, всю доку перерыл, нет такой функции … кто нить знает куда писать насчет добавления новых функций?Сапожник без сапог -
9 апреля 2011 г. 10:57, спустя 2 минуты 45 секунд
function array_values_recursive($arr){
$arr = array_values($arr);
foreach($arr as $key => $val)
if(array_values($val) === $val)
$arr[$key] = array_values_recursive($val);
return $arr;
}
и потом уже с полученного массива максимальный считываешь
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!