PHP 获取不同的随机数组元素

实际上,我有这段代码可以根据$N代表的值的数量来获取不同的元素。


$my_array = array('a','b','c','d','e');

foreach( array_rand($my_array, $N) as $key )

{

  echo $my_array[$key];

}

例如,如果$N = 2,我将获得两个随机元素并且它工作正常。


问题是当$N = 1,我收到以下错误:


警告为 foreach() 提供的参数无效


任何想法或建议来解决它?


波斯汪
浏览 129回答 3
3回答

森栏

快速修复是:$my_array = array('a','b','c','d','e');// Cast result of `array_rand` to type "array"foreach((array)array_rand($my_array, $N) as $key){    echo $my_array[$key];}

四季花海

如果array_rand的第二个参数为 1,则它返回一个元素而不是包含这些元素的数组。例如:$my_array = array('a','b','c','d','e');array_rand($my_array, 1); // returns 'b'array_rand($my_array, 2); // returns ['b', 'd']你可以这样做:$randoms = array_rand($my_array, $N);if ($N == 1) {    $randoms = [$randoms];}foreach ($randoms as $key) {    // ...}

桃花长相依

<?php$my_array = array('a','b','c','d','e');&nbsp;shuffle($my_array);&nbsp;if($my_array!=NULL){&nbsp;&nbsp; &nbsp; foreach($my_array as $data)&nbsp; &nbsp; {&nbsp;&nbsp; &nbsp; &nbsp; echo $data;&nbsp; &nbsp; }}&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP