首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在多维数组中查找最大值

在多维数组中查找最大值
EN

Stack Overflow用户
提问于 2013-06-27 17:25:11
回答 9查看 52.1K关注 0票数 38

The Problem

我有一个类似于下面的多维数组。我正在尝试实现的是一种从数组中查找和检索具有最高"Total“值的数组的方法,现在我知道有一个名为max的函数,但它不适用于这样的多维数组。

我想要做的是创建一个foreach循环,创建一个只包含总数的新数组,然后使用max找到最大值,这将会起作用,然后唯一的问题将是检索与该最大值相关的其余数据。我也不确定这是不是最有效的方法。

有什么想法吗?

代码语言:javascript
复制
Array
(
    [0] => Array
        (
            [Key1] => Key1
            [Total] => 13
        )

    [1] => Array
        (
            [Key2] => Key2
            [Total] => 117
        )

    [2] => Array
        (
            [Key3] => Key3
            [Total] => 39
        )
)
EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2017-04-11 20:20:47

从PHP5.5开始,您可以使用array_column来获取特定键的值数组,并将其设为最大值。

max(array_column($array, 'Total'))

票数 88
EN

Stack Overflow用户

发布于 2013-06-27 17:30:26

只需执行simple loop并比较值或使用array_reduce

代码语言:javascript
复制
$data = array_reduce($data, function ($a, $b) {
    return @$a['Total'] > $b['Total'] ? $a : $b ;
});

print_r($data);

See Live Demo

票数 29
EN

Stack Overflow用户

发布于 2013-06-27 17:40:41

这是非常基本的算法。

代码语言:javascript
复制
$max = -9999999; //will hold max val
$found_item = null; //will hold item with max val;

foreach($arr as $k=>$v)
{
    if($v['Total']>$max)
    {
       $max = $v['Total'];
       $found_item = $v;
    }
}

echo "max value is $max";
print_r($found_item);

Working demo

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17339421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档