2017-01-04 77 views
0

我創建了一個for循環來佔用我網站上的表。本來我通過使用if (i++ <= 10) {限制了結果的數量。以相反順序限制for循環中的結果數

但是,我調整了for循環,因此它是相反的順序(最近的項目第一個)。這裏是我的代碼:

for ($i=count($shipmentInfoArray['ShipmentList'])-1; $i >= 0; $i--) { 
              $shipmentUrl = BASE_URL . "shipment.php?ShipmentID=" . $shipmentInfoArray['ShipmentList'][$i]['ShipmentID']; 

很明顯,因爲它倒數而不是up,所以我的原始限制碼不起作用。

我想這一點,但沒有奏效:

if ($i-- >= (count($shipmentInfoArray['ShipmentList']) - (count($shipmentInfoArray['ShipmentList'])-10)) { 

我的希望是,將採取的條目總數,然後我想顯示的號碼(100減去相同數目 - ( 100-10)= 10個條目

我也嘗試過在最後加入一個'break',假設這樣做不起作用,因爲「count」還沒有完成。/

有什麼建議嗎?謝謝你們!

+0

您可以舉一個'$ shipmentInfoArray ['ShipmentList']'包含的例子嗎? – mc10

+0

@ mc10 $ shipmentInfoArray ['ShipmentList']調用裝運數據庫。我們用它來回顯表格的不同信息(交付成本,持續時間,距離等)。數據庫中的每列都在表中回顯。以一行爲例 - 'echo'​​'。 number_format((float)$ shipmentInfoArray ['ShipmentList'] [$ i] ['ActualDistance'],2,「。」,「,」)。 '';' – Tim

回答

0

類似下面應該工作:

// Set the limit to the max number of results 
$LIMIT = 10; 
foreach (array_reverse($shipmentInfoArray['ShipmentList']) as 
     $shipmentIndex => $shipment) { 
    if ($shipmentIndex >= $LIMIT) { 
     break; 
    } 

    // Use $shipment 
} 
+0

也許關閉,但是如果數組中少於10個項目呢? –

+0

@MarkAdelsberger啊,忘記了這個案子。 – mc10

+0

@MarkAdelsberger這是一個很棒的觀點,我們確實有很多這樣的例子。這可以通過if mc10來解決嗎? – Tim

0

我覺得你讓這個過於複雜,並且迷惑自己,當你試圖通過所產生的複雜原因。有很多方法,我不知道哪個比另一個更好...

您可以將第二個計數器(如j)初始化爲0,並在每次迭代中增加它作爲一個簡單的解決方案。