Перемешать массив в PHP

У меня есть следующий код:

<?php foreach($bb['slides'] as $b): $url = "domain.com/" . $b->image . "; echo($url); endforeach; ?> 

Вывод выглядит следующим образом: domain.com/image1.jpg domain.com/image2.jpg domain.com/image3.jpg

Я пытаюсь рандомизировать порядок вывода. Перед утверждением foreach я попытался перетасовать массив, используя shuffle ($ bb); но это не сработало. Любая помощь приветствуется.

Solutions Collecting From Web of "Перемешать массив в PHP"

Поскольку $ bb является массивом массивов anb, shuffle () не будет рандомизировать попытку подматрица

 shuffle($bb['slides']); 

Вероятно, вы перетасовали внешний массив $ bb, когда вы должны были сделать:

 shuffle($bb['slides']); foreach($bb['slides'] as $b): в shuffle($bb['slides']); foreach($bb['slides'] as $b): 
 shuffle($array_name); // will shuffle array 

http://www.php.net/manual/en/function.shuffle.php

Кроме того, foreach должен быть

 for($array_name as $array_item) { // do stuff } 
 <?php shuffle($bb['slides']); foreach($bb['slides'] as $b) { echo $url = "domain.com/" . $b->image . "; } ?> в <?php shuffle($bb['slides']); foreach($bb['slides'] as $b) { echo $url = "domain.com/" . $b->image . "; } ?> 

Проверьте этот блог для объяснения с примером.

http://wamp6.com/php/str_shuffle-php/ Проверьте, не перетасован ли массив

Похоже, вам нужно сделать shuffle( $bb['slides'] ) .

Отображать контент в произвольном порядке

 <?php $myContentList = array ( 'One', 'Two', 'Three', 'Four' ); shuffle ($myContentList); foreach ($myContentList as $displayAtRandomOrder) { echo '<div>' . $displayAtRandomOrder . '</div>'; } ?> 

Отображать изображения в случайном порядке

 <?php $myImagesList = array ( 'one.png', 'two.png', 'three.jpg', 'four.gif' ); shuffle ($myImagesList); foreach ($myImagesList as $displayImagesAtRandomOrder) { echo '<img src="images/' . $displayImagesAtRandomOrder . '" width="200" height="40" border="0" />'; } ?>