Я хочу сделать так, чтобы мой многомерный массив находился в случайном порядке. Как бы вы это сделали?
// This is how the array looks like print_r($slides); Array ( [0] => Array ( [id] => 7 [status] => 1 [sortorder] => 0 [title] => Pants ) [1] => Array ( [id] => 8 [status] => 1 [sortorder] => 0 [title] => Jewels ) [2] => Array ( [id] => 9 [status] => 1 [sortorder] => 0 [title] => Birdhouse ) [3] => Array ( [id] => 10 [status] => 1 [sortorder] => 0 [title] => Shirt ) [4] => Array ( [id] => 11 [status] => 1 [sortorder] => 0 [title] => Phone ) ) // This how the result is if I use array_rand() print_r(array_rand($slides, 5)); Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 ) // This how the result is if I use shuffle() print_r(shuffle($slides)); 1
shuffle()
– это путь сюда. Он печатает 1
потому что shuffle
изменяет массив на месте и возвращает логическое значение, как написано в документации :
Возвращает TRUE при успешном завершении или FALSE при сбое.
Я предлагаю также прочитать документацию array_rand()
:
Выбирает одну или несколько случайных записей из массива и возвращает ключ (или ключи) случайных записей.
Всегда читайте документацию, если вы используете встроенные функции. Не просто предполагайте, как работа. Бьюсь об заклад, потребовалось больше времени, чтобы написать вопрос, чем посмотреть на это.
Я не уверен, как вы хотите его отображать, но вы можете зацикливать массив и использовать функцию php rand (0, arraylen) для синтаксического анализа массива.
Он работает отлично. print_r (shuffle ($ slides))) дает результат TRUE, так как возвращаемое значение shuffle
является логическим, а не массивом.
См. Рабочий пример здесь: http://codepad.org/B5SlcjGf
Вместо
print_r(shuffle($slides));
делать
shuffle($slides); print_r($slides);
Вы видите, что shuffle()
перетасовывает массив на месте