如何将foreach循环的结果放在一个数组中并获得最高值

时间:2014-04-03 16:16:52

标签: php mysql sql arrays foreach

在这个foreach循环中,我把一个函数返回房间数量,每个$ sumqty [' room_qty']有不同的值,我的问题是,我想得到$ sumqty的最高值[& #39; room_qty'],我把它放在一个数组中吗?怎么样?任何帮助将不胜感激。

<?php
    foreach($reservation as $res){
    $sumqty = sumqty($res['arrival'],$res['departure'],$res['room_id']);
    $sumqty['room_qty'];
    }

    $highest = ???;
?>

我想通过echo $ highest

显示最高值

3 个答案:

答案 0 :(得分:0)

是的,您可以使用数组。如果$sumqty['room_qty']是一个数值,则以下内容将起作用:

$allquantities=array();
foreach($reservation as $res){
    $sumqty = sumqty($res['arrival'],$res['departure'],$res['room_id']);
    $allquantities[]=$sumqty['room_qty'];
}

$highest = max($allquantities);

答案 1 :(得分:0)

假设sumqty采用'到达','出发'和'房间id'并返回一个数组,其中键'room_qty'映射到某个整数:

<?php
$highest = -1000000000; //some really, really small number
foreach ($reservation as $res) {
    $sumqty = sumqty($res['arrival'],$res['departure'],$res['room_id']);
    if ($sumqty['room_qty'] > $highest) {
        $highest = $sumqty['room_qty'];
    }
}
echo $highest;

一般的想法是,每次找到更高的值时,都会将之前的最高值替换为新的更高值。

完成此操作不需要额外的数组!使用数组来解决此问题的解决方案不必要地复杂化。 (编辑:“复杂”是一个糟糕的单词选择;如果使用额外的数组比程序的效率稍差)

答案 2 :(得分:0)

获取$sumqty['room_qty']$room_qty[]的所有值的数组,如本例所示。

<?php
    $room_qty = array();
    foreach($reservation as $res){
    $sumqty = sumqty($res['arrival'],$res['departure'],$res['room_id']);
    $room_qty[] = $sumqty['room_qty'];
    }

    $highest = max($room_qty);
?>

获得数组后,可以使用max()函数查找给定数组中的最大值。通过this manual,你会明白它。