来自foreach的php随机顺序

fis*_*man 11 php random foreach shuffle

我有一些foreach,这可能会很好

foreach ($umm as $data) {
        echo '<img src="'.$data->picture.'" />';
        echo  $data->id;
}
Run Code Online (Sandbox Code Playgroud)

现在我想改变一下foreach.我试过了:

foreach (shuffle($umm) as $data) {
        echo '<img src="'.$data->picture.'" />';
        echo  $data->id;
}
Run Code Online (Sandbox Code Playgroud)

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;
}
Run Code Online (Sandbox Code Playgroud)

这些Warning: Invalid argument supplied for foreach()都是第二次造成的foreach.如何从foreach随机排序?

Ry-*_*Ry- 34

看看文档shuffle().它需要引用一个数组并将其混洗到位.所以你需要在数组上使用它,然后迭代:

shuffle($umm);

foreach ($umm as $data) {
        echo '<img src="'.$data->picture.'" />';
        echo  $data->id;
}
Run Code Online (Sandbox Code Playgroud)


Hor*_*Kol 5

shuffle()返回一个布尔值 - 您通过引用传递数组

尝试这个:

shuffle($umm);
foreach($umm as $new){
    echo '<img src="'.$new->picture.'" width="100" />';
    echo $new->id;
}
Run Code Online (Sandbox Code Playgroud)