2011-11-29 122 views
0

我有以下代码:每次刷新页面时如何获取3个随机行?

<?php $i = 0; ?> 

    <?php foreach ($this->getMyCollection() as $faqItem): ?> 
     <a class="anchor" href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) ?>faq#<?php echo $i ?>"><?php echo $this->htmlEscape($faqItem->getQuestion()) ?></a><br> 
    <?php 
     $i++; 
     if($i>2)break; 
    ?> 
    <?php endforeach; ?> 

但是我想表明的是,每次刷新页面后三个不同的行。我怎么做?

回答

0

试试这个:

随着array_rand你可以传递一个数组,定义你想要的结果的数量。它将返回您想要使用的给定数量的密钥。

<?php $i = 0; 
$items = $this->getMyCollection(); 
$keys = array_rand($items, 3); 
foreach ($keys as $key): 
{ 

    $faqItem = $items[$key]; 
?> 

    <a class="anchor" href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) ?>faq#<?php echo $i ?>"><?php echo $this->htmlEscape($faqItem->getQuestion()) ?></a><br> 
<?php 
    $i++; 
} ?> 

或选项2,使用Shuffle功能:

<?php foreach (shuffle($this->getMyCollection()) as $faqItem): ?> 
    <a class="anchor" href="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) ?>faq#<?php echo $i ?>"><?php echo $this->htmlEscape($faqItem->getQuestion()) ?></a><br> 
<?php 
    $i++; 
    if($i>2)break; 
?> 
<?php endforeach; ?> 
相关问题