Выбор случайной строки из массива

0

Попытка заставить этот код работать. Возможно, было бы проще показать, что я пытаюсь сделать, а что отсутствует:

<?php
    $array=array(
        "something",
        "something else"
    );
    /*pick a random entry in the array and store it as $output*/;
    if(strpos($output,"else") !== false){
        //do stuff;
    }
    echo "<div>";
    echo $output
    echo "</div>"
?>

Как вы можете видеть, у меня возникли проблемы с попыткой сохранить случайную запись в $output. То, что я хочу сделать, - это выбрать случайную запись из массива, запустить strpos на результат, чтобы делать дополнительные вещи, если условия выполняются, а затем выводить одну и ту же случайную запись между div.

EDIT: если это не ясно, строка, прокомментированная с /* и */, должна быть "заполнять пустую" строку, а не "этот комментарий относится к строкам кода ниже".

Теги:
random
strpos

2 ответа

6
Лучший ответ

Используйте array_rand() чтобы получить случайную запись.

$output = $array[array_rand($array)];
  • 0
    Не приведет ли это к различным случайным результатам, если $ output вызывается в двух разных местах?
  • 0
    @ Хигаран: Нет. array_rand() не будет вызываться каждый раз, когда вы его где-то echo . Доказательство: eval.in/136389
Показать ещё 2 комментария
2

Создайте случайное число от нуля до единицы, меньшее длины массива, используйте это как индекс массива для получения случайного элемента из массива.

<?php
$output = $array[rand(0, count($array)-1];

Ещё вопросы

Сообщество Overcoder
Наверх
Меню