2017-01-04 41 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,并在每次迭代中增加它作为一个简单的解决方案。