The Problem
我有一个类似于下面的多维数组。我正在尝试实现的是一种从数组中查找和检索具有最高"Total“值的数组的方法,现在我知道有一个名为max
的函数,但它不适用于这样的多维数组。
我想要做的是创建一个foreach循环,创建一个只包含总数的新数组,然后使用max
找到最大值,这将会起作用,然后唯一的问题将是检索与该最大值相关的其余数据。我也不确定这是不是最有效的方法。
有什么想法吗?
Array
(
[0] => Array
(
[Key1] => Key1
[Total] => 13
)
[1] => Array
(
[Key2] => Key2
[Total] => 117
)
[2] => Array
(
[Key3] => Key3
[Total] => 39
)
)
发布于 2017-04-11 20:20:47
从PHP5.5开始,您可以使用array_column来获取特定键的值数组,并将其设为最大值。
max(array_column($array, 'Total'))
发布于 2013-06-27 17:30:26
只需执行simple loop
并比较值或使用array_reduce
$data = array_reduce($data, function ($a, $b) {
return @$a['Total'] > $b['Total'] ? $a : $b ;
});
print_r($data);
发布于 2013-06-27 17:40:41
这是非常基本的算法。
$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);
https://stackoverflow.com/questions/17339421
复制相似问题