【问题标题】:Get the id of maximum amount values in a associative array [duplicate]获取关联数组中最大数量值的ID [重复]
【发布时间】:2020-12-21 05:49:20
【问题描述】:

我有一个这种格式的数组:

 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
        )

)

我正在尝试从关联数组中获取最大数量的 id。 我该怎么做?

我期待结果

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

【问题讨论】:

  • 代码在哪里?
  • 如果两个条目有相同的amount怎么办?
  • @kmoser 我想要两个 ID
  • 然后您必须根据金额值对数组进行排序,然后将结果过滤为仅具有最高金额的条目。
  • 您可以通过此行获取最大数量(包括重复项) $result = array_filter($yourArr, function($arr) use($yourArr) { return $arr['amount'] === max(array_column($yourArr, 'amount')); });

标签: php


【解决方案1】:

最简单的方法是用0 初始化一个“maxkey”值,然后遍历数组,当你找到一个更高的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
)

【讨论】:

    猜你喜欢
    • 2019-09-11
    • 2015-10-16
    • 2018-05-21
    • 2016-11-06
    • 2017-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多