У меня есть некоторый foreach, это могло бы работать хорошо
foreach ($umm as $data) { echo '<img src="'.$data->picture.'" />'; echo $data->id; }
Теперь я хочу перетасовать foreach. Я пытался:
foreach (shuffle($umm) as $data) { echo '<img src="'.$data->picture.'" />'; echo $data->id; }
А ТАКЖЕ
foreach ($umm as $data) { $rand_pic[] = $data->picture; $rand_id[] = $data->id; } $ran = shuffle($rand_id); foreach($ran as $new){ echo '<img src="'.$new->picture.'" width="100" />'; echo $new->id; }
Все это вызвало Warning: Invalid argument supplied for foreach()
во втором foreach
. Как случайный порядок от foreach?
Взгляните на документацию для shuffle()
. Он принимает ссылку на массив и перемещает его на место. Поэтому вам нужно использовать его на массиве, а затем повторить:
shuffle($umm); foreach ($umm as $data) { echo '<img src="'.$data->picture.'" />'; echo $data->id; }
shuffle () возвращает boolean – вы передаете массив по ссылке
Попробуй это:
shuffle($umm); foreach($umm as $new){ echo '<img src="'.$new->picture.'" width="100" />'; echo $new->id; }
Попробуйте эту мелодию:
<?php shuffle($umm); foreach($umm as $key => $value): ?> <img src="<?php echo $value->picture; ?>" alt="<?php echo $value->title;?>" /> <?php echo $value->id;?> <?php endforeach; ?>