关于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() 随机函数