• Теория
  • Теория

Функция array_rand, получаем случайные элементы

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

Используем встроенную функцию array_rand. Она принимает исходный массив и количество случайных элементов, которые мы хотим получить.

$random = array_rand($array, $number_of_elements);

Если второй аргумент — единица, функция вернёт один случайный ключ. Если второй аргумент больше единицы, функция вернёт массив со случайными ключами.

$array = [
  0 => 'ноль',
  1 => 'один',
  2 => 'два',
  3 => 'три',
  4 => 'четыре',
  5 => 'пять'
];

// Получаем один случайный элемент
$random_element = array_rand($array, 1);
keks_log($random_element); // Выведет (например): 4

// Получаем несколько случайных элементов
$random_elements = array_rand($array, 3);
keks_log($random_elements); // Выведет (например): [0, 2, 5]

Нам нужно получить три случайных промо-товара. Для этого вызовем функцию array_rand с аргументами $promo_products и 3. Функция вернёт массив с тремя идентификаторами. Используем эти идентификаторы, чтобы вывести товары на страницу. Массив, который вернёт функция array_rand, простой, не ассоциативный. Чтобы перебрать его элементы, будет достаточно записи:

foreach($array as $item)

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

Минимальный вид табов
  • index.html
HTML
HTML

Вы перешли на другую страницу

Кликните внутри мини-браузера, чтобы поставить фокус в это окно.

100%
Бабушка Кекс

Притормози, дружище

Проходить вызовы части «Массивы и функции в PHP» тренажёра «Знакомство с PHP» можно после регистрации и оформления подписки.