2014-04-03 47 views
0

在這個foreach循環中,我把函數返回房間數量,每個$ sumqty ['room_qty']具有不同的值,我的問題是,我想要獲得$ sumqty ['room_qty']的最高值,我把它放在一個數組中嗎?怎麼樣?任何幫助將不勝感激。如何把foreach循環的結果放在一個數組中,並獲得最高值

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

    $highest = ???; 
?> 

我想回聲$最高

+0

您是否在計算房間的實際數量? – Progrower

+0

您可以使用'max($ array)'從數組中獲得最高值。 –

回答

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); 
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; 

總體思路是,每當您找到更高的值時,用先前的最高值替換新的更高值。

不需要額外的數組來完成這個!使用數組解決此問題的解決方案不必要的複雜。 (編輯:「複雜」是一個糟糕的選擇單詞;如果使用額外的數組比程序的效率略低)

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你會清楚它。

相關問題