foreach仅显示前3个项目

Hen*_*k Z 1 php foreach

我们使用一个foreach代码,并且只想显示前3个项目。但是由于某种原因,我们的代码无法正常工作,目前仍显示所有项目。

我在这里想念什么?

码:

<?php $items = $_order->getAllItems(); $i = 0; foreach($items as $i): if($i < 3) {?>
    <li class="order-row-item">
        <div class="order-row-product">
            <div class="order-row-product-image">
                <img src="<?php echo $_product = Mage::getModel('catalog/product')->load($i->getProductId())->getSmallImageUrl();?>" border="0" />       </div>
            <div class="order-row-product-name">
                <?php echo substr($this->escapeHtml($i->getName()), 0, 20) ?>
            </div>
        </div>
    </li>
<?php $i++; } endforeach;?> 
Run Code Online (Sandbox Code Playgroud)

Ana*_*Die 5

您需要在内部使用其他变量foreach()

<?php 
    $items = $_order->getAllItems(); 
    $i = 0; 
    foreach($items as $itm): 
        if($i >= 3) {break;}else{?>
        <li class="order-row-item">
            <div class="order-row-product">
                <div class="order-row-product-image">
                    <img src="<?php echo $_product = Mage::getModel('catalog/product')->load($itm->getProductId())->getSmallImageUrl();?>" border="0" />       </div>
                <div class="order-row-product-name">
                    <?php echo substr($this->escapeHtml($itm->getName()), 0, 20) ?>
                </div>
            </div>
        </li>
<?php $i++; } endforeach;?> 
Run Code Online (Sandbox Code Playgroud)

使用 array_splice()更好的解决方案

<?php 
    $items = $_order->getAllItems(); 
    $item =  array_slice($items, 0, 3); // get first three only
    foreach($item as $itm): 
        <li class="order-row-item">
            <div class="order-row-product">
                <div class="order-row-product-image">
                    <img src="<?php echo $_product = Mage::getModel('catalog/product')->load($itm->getProductId())->getSmallImageUrl();?>" border="0" />       </div>
                <div class="order-row-product-name">
                    <?php echo substr($this->escapeHtml($itm->getName()), 0, 20) ?>
                </div>
            </div>
        </li>
<?php endforeach;?> 
Run Code Online (Sandbox Code Playgroud)