Просмотр поста

.
ДоХтор
Добавлено: 06.12.2017 / 00:38
# Sitego (05.12.2017 / 23:48)
Как можно получать значения массива рандомно без повторений?
Функция array_rand(); выводит значения массива случайным образом, но они могут повторяться.
Вот пример с использованием сессий:
code (+/-)
session_id() ?: session_start();

// Массив случайных значений
$array = [
    'A',
    'B',
    'C',
    'D',
    'E'
];

isset($_SESSION['arr']) ?: $_SESSION['arr'] = [];
$temp = &$_SESSION['arr'];
!empty($temp) ?: $temp = $array;
 
shuffle($temp);
$result = $temp[0];
unset($temp[0]);

echo $result;
Добавлено: 06.12.2017 / 00:42
Sitego, суть в том, что при выборе из массива текущего случайно выпавшего элемента, этот элемент удаляется из массива, и таким образом исключается его повторное получение до момента, пока не закончатся все элементы в массиве - после этого массив восстанавливается и цикл начинается заново.