Получить идентификатор значений максимальной суммы в ассоциативном массиве

У меня есть массив в таком формате:

 Array
(
    [0] => Array
        (
            [id] => 117
            [name] => Apple
            [amount] => 300
        )

    [1] => Array
        (
            [id] => 188
            [name] => Orange
            [count] => 20
        )

    [2] => Array
        (
            [id] => 189
            [name] => Grapes
            [amount] => 7000
        )

)

Я пытаюсь получить идентификатор максимальной суммы из ассоциативного массива. как я могу это выполнить?

я ожидаю результат

Array
    (
        [2] => Array
            (
                [id] => 189
                [name] => Grapes
                [amount] => 7000
            )
    
    )

где коды?

Kevin 21.12.2020 06:57

Что делать, если две записи имеют одинаковые amount?

kmoser 21.12.2020 07:05

@kmoser, я хочу оба идентификатора

mathew 21.12.2020 07:09

Затем вам нужно отсортировать массив по значению суммы, а затем отфильтровать результат только для записей с максимальной суммой.

deceze 21.12.2020 07:11

@deceze решетка! Спасибо!

mathew 21.12.2020 07:16

Вы можете получить максимальную сумму (включая дубликаты) с помощью этой строки количество')); });

kopz 21.12.2020 07:23

@kopz решен с помощью одной строки кода. Спасибо брат

mathew 21.12.2020 07:30
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout.
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout.
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для...
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
0
7
121
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проще всего просто инициализировать значение «maxkey» с помощью 0, а затем перебрать массив, заменив ключ, когда вы найдете значение с более высоким amount:

$maxkey = 0;
foreach ($data as $key => $value) {
    if ($value['amount'] > $data[$maxkey]['amount']) {
        $maxkey = $key;
    }
}
print_r($maxkey);
print_r($data[$maxkey]);

Выход:

2
Array
(
    [id] => 189
    [name] => Grapes
    [amount] => 7000
)

Другие вопросы по теме