使用条件在关联数组中查找最大值

时间:2011-11-19 12:51:04

标签: php

$a=2;
$b=6;
$c=7;
$r1=8;
$r2=9;
$r3=6;
$array = array(
  array('MIDDAY'=>$a,'RATE'=>$r1),
  array('SHORTDAY'=>$b,'RATE'=>$r2),
  array('LONGDAY'=>$c,'RATE'=>$r3)
);

我有一个像这样的数组,我想要这个数组来处理 并且想要检查哪个数量更大,如上面LONGDAY = 7 那么我想在一个变量中使用这个LONGDAY键,在其他变量中使用它的RATE

并且还要检查两个计数是否相等,然后像LONGDAY = 7和MIDDAT = 7 然后我想检查速率大于相同的速率 我想在一个变量中使用这个LONGDAY键,在其他变量中使用它的RATE(在这种情况下RATE更大)

1 个答案:

答案 0 :(得分:2)

沿着这些方向做的事情应该是根据你的规则对数组进行排序并获得最佳结果。

$array = array(
  array('type' => 'MIDDAY',   'val' => $a, 'rate' => $r1),
  array('type' => 'SHORTDAY', 'val' => $b, 'rate' => $r2),
  array('type' => 'LONGDAY',  'val' => $c, 'rate' => $r3)
);

usort($array, function ($a, $b) {
    if      ($a['val'] < $b['val']) return 1;
    else if ($a['val'] > $b['val']) return -1;
    else    return $b['rate'] - $a['rate'];
});

$var1 = $array[0]['type'];
$var2 = $array[0]['rate'];

注意,这使用PHP 5.3+匿名函数语法。