【问题标题】:php random order from a foreach来自foreach的php随机顺序
【发布时间】:2012-01-23 00:26:09
【问题描述】:

我有一些 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 中随机排序?

【问题讨论】:

    标签: php random foreach shuffle


    【解决方案1】:

    看看the documentation for shuffle()。它需要一个对数组的reference 并将其随机播放。所以需要在数组上使用,然后迭代:

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

    【讨论】:

      【解决方案2】:

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

      试试这个:

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

      【讨论】:

        【解决方案3】:

        试试这个随机播放:

        <?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; ?>

        【讨论】:

          猜你喜欢
          • 2020-09-18
          • 2019-04-12
          • 1970-01-01
          • 1970-01-01
          • 2012-09-21
          • 1970-01-01
          • 1970-01-01
          • 2012-11-19
          • 2017-02-11
          相关资源
          最近更新 更多