为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
波斯汪 2022-01-02 18:03:45
实际上,我有这段代码可以根据$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() 提供的参数无效任何想法或建议来解决它?
查看完整描述

3 回答

?
森栏

TA贡献1810条经验 获得超5个赞

快速修复是:


$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];

}


查看完整回答
反对 回复 2022-01-02
?
四季花海

TA贡献1811条经验 获得超5个赞

如果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) {

    // ...

}


查看完整回答
反对 回复 2022-01-02
?
桃花长相依

TA贡献1860条经验 获得超8个赞

<?php

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

shuffle($my_array); 

if($my_array!=NULL)

    foreach($my_array as $data)

    { 

      echo $data;

    }


查看完整回答
反对 回复 2022-01-02
  • 3 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信