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?
3 ответов
посмотри документация shuffle()
. Это занимает ссылка к массиву и перетасовывает его на месте. Поэтому вам нужно использовать его в массиве, а затем повторить:
shuffle($umm);
foreach ($umm as $data) {
echo '<img src="'.$data->picture.'" />';
echo $data->id;
}
shuffle () возвращает логическое значение-вы передаете массив по ссылке
попробуйте это:
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; ?>