php случайный порядок от foreach

У меня есть некоторый 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; ?>