У меня есть следующий код:
<?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); но это не сработало. Любая помощь приветствуется.
Поскольку $ 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" />'; } ?>