查找并标记二维数组中三个值中的最大值

时间:2010-03-15 10:43:41

标签: php arrays

我正在办公室的显示屏上工作,我似乎无法想到找到二维数组中一组数据中最大数值的好方法。我已经看过使用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()?

1 个答案:

答案 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');
?>

我会做什么