Задать вопрос
@evomed

Как выбрать максимальное значение во вложенных массивах?

Есть массив с массивами
$array = [
            [
                "label" => "Bad",
                "number" => 0.99999895728755
            ],
            [
                "label" => "Good",
                "number" => 4.2713489950201E-8
            ]
        ];

Мне нужно получить label массива с максимальным number среди других массивов. Есть какая-то функция или сочетание функций в PHP чтобы это сделать просто и красиво?
  • Вопрос задан
  • 163 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Ge1i0N
@Ge1i0N
Можете через usort отсортировать по значению в number, а потом получить лейбл нулевого элемента.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
delphinpro
@delphinpro Куратор тега PHP
frontend developer
$array = [
            [
                "label" => "Bad",
                "number" => 0.99999895728755
            ],
            [
                "label" => "Good",
                "number" => 4.2713489950201E-8
            ]
        ];

$max = array_reduce($array, fn($a, $i) => $i['number'] > $a['number'] ? $i : $a, $array[0]);

var_dump($max);
Ответ написан
Комментировать
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
просто и красиво?

Перебрать массив и получить максимальное значение - это три строчки. Куда проще-то?

Есть какая-то функция или сочетание функций

Есть поговорка. "Дурная голова ногам покою не даёт". И ещё есть принцип, KISS, который переводится как "не надо пытаться выглядеть умнее, чем ты есть, дурачок - опозоришься".

Самый простой и красивый код - это тот который ты написал сам и понимаешь, как он работает. И сможешь в случае чего исправить. А не побежишь снова на Хабр, "мне тут пацаны дали красивое, а можно чтобы оно ещё и работало?"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы