У меня есть массив в таком формате:
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
)
)
Что делать, если две записи имеют одинаковые amount
?
@kmoser, я хочу оба идентификатора
Затем вам нужно отсортировать массив по значению суммы, а затем отфильтровать результат только для записей с максимальной суммой.
@deceze решетка! Спасибо!
Вы можете получить максимальную сумму (включая дубликаты) с помощью этой строки количество')); });
@kopz решен с помощью одной строки кода. Спасибо брат
Проще всего просто инициализировать значение «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
)
где коды?