【问题标题】:Randomize the elements of an array [duplicate]随机化数组的元素[重复]
【发布时间】:2013-02-08 07:50:31
【问题描述】:

我有一个包含未知数量元素的数组。 我想随机化它的元素,这样每次我显示它时,它的元素都会以随机顺序显示。 现在我做:

 foreach($photos['data'] as $photo)
{ echo $photo; }

有没有办法随机化 $photos['data'] 数组的元素? 谢谢!

【问题讨论】:

  • shuffle($photos['data']) ?
  • 使用shuffle(已建议)或array_rand。后者不使用传递的数组进行操作,而是返回随机数组,第二个参数也使您可以选择应该返回多少项。
  • 如果我使用像 $shuf = $photos['data'] 这样的随机播放,则解析 $shuf 返回空数组
  • @dana shuffle 不返回数组,它会打乱数组,因为数组是通过引用传递的。

标签: php arrays random


【解决方案1】:

你可以使用shuffle函数:

例如:

<?php
suffle($photos['data'];
foreach ($photos['data'] as $photo) {
  echo $photo;
}
?>

【讨论】:

    【解决方案2】:

    shuffle() 函数随机化数组中元素的顺序。更多详情,请参考this

    此函数为数组中的元素分配新键。现有密钥将被删除。

    此函数在成功时返回 TRUE,或在失败时返回 FALSE。

    对于 EG:

    <?php
    $my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
    
    shuffle($my_array);
    print_r($my_array);
    ?>
    

    在你的情况下:

    <?php
    suffle($photos['data']);
    print_r($photos['data']);
    }
    ?>
    

    【讨论】:

      【解决方案3】:
      echo $items[array_rand($items)];
      

      array_rand() 通过这个函数。这是最适合您问题的选项

      【讨论】:

        【解决方案4】:

        使用sort() 函数。 请参阅链接以获取更多帮助http://php.net/manual/en/function.sort.php 认为它会帮助你。谢谢。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-04-18
          • 1970-01-01
          • 2010-10-23
          • 1970-01-01
          • 2012-01-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多