如何获取数组中相同键的最大值
E.x
我有这个数组。
Array
(
[id] => 1
[amount] => 4
)
Array
(
[id] => 1
[amount] => 3
)
Array
(
[id] => 2
[amount] => 3
)
我想要下面的结果。意味着我想要相同id的最大金额值。请为此提供解决方案。
Array
(
[id] => 1
[amount] => 4
)
Array
(
[id] => 2
[amount] => 3
)
答案 0 :(得分:1)
您可以先使用usort按最高金额对数组进行排序,然后再返回第一个结果。例如:
usort($theBigArray, function($a, $b) {
return ($a['amount'] - $b['amount']);
});
print_r($theBigArray);
答案 1 :(得分:1)
<?php
$bigArray = [
[
'id' => 1,
'amount' => 4
],
[
'id' => 1,
'amount' => 3
],
[
'id' => 2,
'amount' => 3
]
];
$output = [];
foreach($bigArray as $innerArray){
if(!isset($output[$innerArray['id']])){
$output[$innerArray['id']] = $innerArray;
}
elseif( $output[$innerArray['id']]['amount'] < $innerArray['amount'] ){
$output[$innerArray['id']] = $innerArray;
}
}
print_r($output);
exit;