Как получить 3 случайных строки каждый раз, когда страница обновляется? - PullRequest
0 голосов
/ 29 ноября 2011

У меня есть следующий код:

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

Но я хочу показать три разных строки при каждом обновлении страницы. Как мне это сделать?

1 Ответ

0 голосов
/ 29 ноября 2011

Попробуйте:

С помощью 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; ?>
...