Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Поиск максимального значения в многомерном массиве


Автор: Aleshka 2.11.2009, 20:27
Есть многомерный массив 
Код

$array = array (
0=>array('name'=>'Aleksey','age'=>35),
1=>array('name'=>'Andrey','age'=>17),
2=>array('name'=>'Sergey','age'=>25),
3=>array('name'=>'Vadim','age'=>36),
4=>array('name'=>'Vadik','age'=>31),
);

Как мне из этого массива выбрать самый большой возраст, т.е необходимо получить максимальное значение из поля 'age'?
Спасибо.

Автор: capitan 2.11.2009, 22:37
Aleshka, Давайте начнем с простого. Как вы генерируете данный массив? Если ручками,- тогда что мешает ручками прописать 
Код

$max_age = '36';

Автор: bars80080 2.11.2009, 22:55
ну и конечно, можно почитать об usort()

Автор: sdukshis 3.11.2009, 00:54
Может подойдет простой линейный поиск
Код

    function find_max_age(array $a){
        $max_age = 0;
        $max_item = -1;

        if(count($a)){
            foreach($a as $i => $item){
                if(isset($item['age'])  && ($item['age'] > $max_age)){
                    $max_age = $item['age'];
                    $max_item = $i;
                }
            }
        }
        return $max_item;
    }


Автор: Aleshka 3.11.2009, 11:18
Спасибо за ответы. Capitan, да я сформировал массив руками для примера, чтобы показать суть вопроса. 
Цитата

ну и конечно, можно почитать об usort() 
. Да,bars80080, я не подумал, чтобы отсортировать массив а затем взять самое последнее значение из отсортированного массива. 
Цитата

Может подойдет простой линейный поиск
 sdukshis,Вот к этому решению я и склоняюсь. Спасибо огромное за пример, очень пригодилось. 
Я думал, когда задавал  вопрос, может уже готов решение в php ведь возможности этого языка по работе с массивом огромные. 

Автор: capitan 3.11.2009, 12:30
Aleshka, Я не зря спросил как формируется массив. Если руками, тогда можно просто пописать переменную руками. Если например из базы, то можно сделать выборку при его формировании. Зачем несколько раз его перебирать? Сначала формировать, потом искать в нем же.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)