关于PHP中array_rand函数为啥不能只设置一个随机?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于PHP中array_rand函数为啥不能只设置一个随机?相关的知识,希望对你有一定的参考价值。

$input = array( "1" , "2" , "3" , "4" , "5" );
$rand_keys = array_rand ( $input , 3 );
echo $input [ $rand_keys [ 0 ]] . "\n" ;
echo $input [ $rand_keys [ 1 ]] . "\n" ;
echo $input [ $rand_keys [ 2 ]] . "\n" ;
以上设置2个或以上都没问题,但只要是1个就报错,为什么呢?

array_rand传不同的参数得到的返回值类型是不同的哦。

<?php
// 当第二个参数大于1时,array_rand只会多个随机元素的索引组成的数组,需要遍历该返回值再取元素
$input  = array( "1" ,  "2" ,  "3" ,  "4" ,  "5" );
$rand_keys  =  array_rand ( $input ,  3 );
echo  $input [ $rand_keys [ 0 ]] .  "\\n" ;
echo  $input [ $rand_keys [ 1 ]] .  "\\n" ;
echo  $input [ $rand_keys [ 2 ]] .  "\\n" ;
// 当第二个参数为1或者不传第二个参数时,array_rand只会返回一个数字(随机元素的索引)
$rand_key  =  array_rand ( $input ,  1 );
//这里直接获取即可
echo $input[$rand_key];

追问

终于明白,rand_keys后面中括号去掉就是只抽取1个了。

参考技术A Array_rand 本身就是要设两个值吧?一个并不符合函数的要求。

array_rand() 函数

定义和用法

array_rand() 函数返回数组中的随机键名,或者如果您规定函数返回不只一个键名,则返回包含随机键名的数组

语法

array_rand(array,number)

参数解析

参数描述
array必需。规定数组。
number可选。规定返回多少随机键名。

示例

<?php
    $a=array("red","green","blue","yellow","brown");
    $random_keys=array_rand($a,3);
    echo $a[$random_keys[0]]."<br>";
    echo $a[$random_keys[1]]."<br>";
    echo $a[$random_keys[2]];
?>

输出

第一次
    green
    blue
    brown
第二次
    red
    green
    yellow
...


本文出自 “素颜” 博客,请务必保留此出处http://suyanzhu.blog.51cto.com/8050189/1896370

以上是关于关于PHP中array_rand函数为啥不能只设置一个随机?的主要内容,如果未能解决你的问题,请参考以下文章

php数组函数序列 之shuffle()和array_rand() 随机函数

PHP数组和字符串函数

array_rand() 函数

PHP array_rand() 函数的特点,我们可以使用它来实现生成随机验证码的功能

PHP 7.1 - 为啥没有关于 void 返回值的警告?

PHP为啥不能调用MySQL