【问题标题】:How to get 3 random rows each time page is refreshed?每次刷新页面时如何获得3个随机行?
【发布时间】:2011-11-29 11:16:37
【问题描述】:

我有以下代码:

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

但我想展示的是每次刷新页面时的三个不同的行。我该怎么做?

【问题讨论】:

    标签: php mysql magento magento-1.5


    【解决方案1】:

    试试这个:

    使用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; ?>
    

    【讨论】:

      猜你喜欢
      • 2012-06-06
      • 2019-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多