Выбираем случайный элемент массива с array_rand()

/ 👁 5264

Из предыдущих постов мы уже достаточно много узнали о массивах. Думаю, что пришло время немного попрактиковаться на простых примерах, которые, однако, могут быть очень полезны. Сегодня рассмотрим функцию array_rand(), с помощью которой можно выбрать случайный элемент массива. А также рассмотрим небольшой практический пример, как это можно использовать.

дополнительные материалы к урокам

демо версия урока


выбираем случайный элемент массива
Давайте вначале немного расскажу о функции array_rand().

При помощи данной функции мы можем выбрать случайный элемент (или элементы) массива. Да, именно элемент или элементы! Это может быть один элемент или их может быть несколько. Все зависит от той задачи, которая перед Вами стоит.

Однако, здесь следует учесть, что функция будет возвращать не значение элемента, а его ключ (или ключи, если элементов несколько).

В качестве параметров в скобках функция принимает: имя массива, с которым работаем и число элементов, которые необходимо выбрать.

В общем-то все просто! А еще проще будет, когда мы все это рассмотрим на примерах.

Давайте для начала будем выбирать один-единственный случайный элемент из массива.

Пример 1. Выбираем один случайный элемент массива

Давайте представим, что где-то вверху на нашем сайте мы хотим выводить какие-то цитаты. Конечно, цитаты должны меняться. Каждый раз заходя на Ваш сайт, Вы хотите, чтобы пользователь видел новую цитату.

Как Вы, наверное, догадались, наиболее простой способ это реализовать – это поместить все имеющиеся цитаты-изречения в массив, а потом выбирать из этого массива случайный элемент и выводить его на экран.

Чем больше у Вас будет цитат в массиве, тем меньшая вероятность их повторения.

Но для примера я сильно заморачиваться не буду и помещу в мой массив 7 изречений.

Далее мне нужно будет создать переменную, в которую я занесу результат работы функции array_rand(). В скобках у этой функции будет два аргумента: имя нашего массива и необходимое нам число случайных элементов.

Как я уже говорила, функция возвращает не значение элемента, а его ключ (или номер в списке). Таким образом, в переменной будет сохранен ключ случайного элемента.

После мне нужно будет просто вывести на экран значение нужного элемента. Для этого указываю имя массива и в квадратных скобках имя нашей переменной, которая содержит случайный ключ.

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

<?php
$frases = array('В каждом событии есть глубокий смысл','В творчестве вся жизнь',
'Мы все многогранны - эти грани нужно просто раскрыть','В каждом новом дне миллион новых возможностей',
'Начни день с улыбки!','Если подаришь немного добра другому, то поучишь в разы больше',
'Не дай работе заставить тебя забыть о близких людях...');
$rand_frases = array_rand($frases, 1);
echo '<h2 style="color:#00C; margin-left:300px">'. $frases[$rand_frases] .'</h2>';
?>

 

Здесь в вывод на экран я еще добавила немного стилей прям в тег заголовка. Это не обязательно и лучше стили задавать через файл таблицы стилей, но для такого простого примера я его создавать не стала.

вывод случайного элемента массива на экран

Как результат выполнения этого кода, мы получаем случайным образом выведенную цитату. Попробуйте обновлять страницу, и каждый раз цитата будет меняться. Можете посмотреть на результат, нажав на иконку «Демо» в начале статьи или проделайте все это сами (это для Вас гораздо лучше!).

Пример 2. Вывод нескольких случайных элементов массива

Теперь давайте потренируемся с выводом нескольких случайных элементов массива.

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

Сначала создадим массив, в который занесем 7 разных имен.

Далее создаем переменную, в которую будет занесена работа функции array_rand(). Только теперь в скобках у этой функции в качестве второго аргумента укажем цифру «2». Это будет обозначать, что нам нужны 2 случайных элемента.

Результатом работы функции в данной ситуации будет массив, содержащий два случайных ключа элементов из нашего основного массива.

Поэтому при выводе на экран это нужно учесть и в квадратных скобках указать не просто имя переменной, а имя переменной, затем квадратные скобки и индекс массива. Так как элемента у нас 2, то в первом случае индекс будет [0], а во втором [1]. (Вы помните, что индексация в массивах начинается с «0».)

Вот и все. Посмотрите на код, чтобы Вам стало все более понятно:

$names = array('Маша','Саша','Надя','Мила','Андрей','Сергей','Антон');
$rand_names = array_rand($names,2);
echo '<h2 style="color:#00C; margin-left:300px">'.$names[$rand_names[0]].' и '.$names[$rand_names[1]].'</h2>';

 

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

вывод двух случайных элементов массива

Это всего лишь два простых примера, но думаю, они помогут Вам понять работу данной функции. Если Вы проделаете все это один раз самостоятельно, то окончательно во всем разберетесь.

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

Надеюсь, Вам было интересно.

Исходный файл можно скачать в «Исходниках» к уроку.

В следующий раз разберем еще какой-нибудь практический пример, касающийся массивов, потому что теория – это хорошо, но ее нужно подкреплять и практикой.

Придумайте свои задачи для использования функции array_rand(). Это будет очень полезно.

Делитесь уроком при помощи соц. кнопок, расположенных ниже. Подписывайтесь на обновление блога и оставляйте свои комментарии.

С Вами была Анна Котельникова.

Успехов Вам и до скорых встреч!

Leave a Reply