Пару полезных приёмов работы с массивами PHP, без излишних велосипедов.
Поменять местами элементы в массиве
Чтобы поменять местами элементы в массиве можно воспользоваться функцией list так:
list($arr[2], $arr[7]) = [$arr[7], $arr[2]];
Тут мы поменяли местами элементы с 2 и 7 ключами, но можно и заменить и больше.
Выборка случайных элементов из массива PHP
Выбрать 1 или множество случайных элементов можно обернув
// получаем 1 случайный элемент в виде строки var_dump(array_rand(array_flip(['str_1', 'str_2', 'str_3']))); // получаем несколько случайных элементов в виде массива var_dump(array_rand(array_flip(['str_1', 'str_2', 'str_3']), 2));
Элегантно и без всяких дополнительных конструкций. Один минус — строки в массиве должны быть уникальными, иначе при замене их на ключи array_flip вызовет ошибку уровня Warning вернув Null