我正在办公室的显示屏上工作,我似乎无法想到找到二维数组中一组数据中最大数值的好方法。我已经看过使用max()和asort(),但它们似乎不能处理二维数组。
我通过mysql类返回数据,因此行以二维数组返回。
Array(
[0] => Array(
[am] => 12,
[sales] => 981),
[1] => Array(
[am] => 43,
[sales] => 1012),
[2] => Array(
[am] => 17,
[sales] => 876)
)
我需要在我的表中为具有最高销售价值的AM预览数据时输出一个类。没有比较它们全部在>如果声明。我试图在数组上获得max(),但它返回一个数组,因为它在维度中看起来。将其指向特定维度时,它返回的是键而不是值。
我认为我可以asort()数组并弹出顶部值,将其存储在变量中,然后与我的foreach()循环中的变量进行比较,但这似乎很难在两个维度上进行排序。
最后,我认为我可以预先计算()值,每次都将它们与前一个值进行比较,直到找到最大值。然而,这种方法意味着存储每个值,幸运的是只有三个,但然后再次与它们进行比较。
当然必须有一种更简单的方法来实现这一目标,而不是将其转换为单维数组,然后对其进行asort()?
答案 0 :(得分:2)
<?php
function customSort($a, $b)
{
if($a['sales'] == $b['sales'])
return 0;
else
return $a['sales'] < $b['sales'] ? -1 : 1;
}
usort($array, 'customSort');
?>
我会做什么