Нужно вывести случайный набор строк

Тема в разделе "PHP", создана пользователем bork75, 3 сен 2012.

Статус темы:
Закрыта.
Модераторы: latteo
  1. bork75

    bork75 The Team

    Регистр.:
    21 июн 2008
    Сообщения:
    1.451
    Симпатии:
    677
    Есть, например, 10 строк с текстом (будут записаны в этом же php)
    Нужно вывести 5 случайных строк без повторов при каждом обновлении страницы.

    Вывожу свой тизерный блок, где строками будут адреса картинок.
    Нужно просто порандомить эти картинки (без всяких проверок ip), что бы более менее разнообразно блок смотрелся.

    Вариант, StrikeOFF вроде работает ))
    Но если есть ещё - кидайте, пригодится
     
  2. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.549
    Симпатии:
    1.433
    Отредактируй, добавив информацию в пределах чего не должно быть повторов...

    Можно отталкиваться от ip, кук, юзер агента или делать глобально для всех.

    И что делать когда варианты сочетаний закончатся?

    UPD:
    Тогда вариант с shuffle или с array_rand вполне подходит, повторов почти не будет.
     
    bork75 нравится это.
  3. StrikeOFF

    StrikeOFF ♥kan inte lyfta utan lift♥

    Регистр.:
    20 мар 2010
    Сообщения:
    363
    Симпатии:
    204
    PHP:
    <?php
    $i 
    1;
    $var1 file('list.txt');
    shuffle($var1);
    while(
    $i<6) {
    echo 
    $var1[$i]."<br>\n";
    $i++;
    }
    ?>
    //или
    <?php
    $var1 
    file('list.txt');
    shuffle($var1);
    for(
    $i 0;$i<6;$i++) {
    echo 
    $var1[$i]."<br>\n";
    }
    ?>
    Или так, перед for:
    PHP:
    <?php
    $var1 
    file('list.text');
    $rand_string array_rand($var1,5);
    в файле list.txt в каждой новой строчке кеи
    так же можно вместо
    $var1 = file('list.txt'); написать $var1 = array('strochka_1', 'strochka_2','strochka_n');

    latteo: добавил код из твоего предыдущего варианта :)
     
    bork75 нравится это.
Статус темы:
Закрыта.