关于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个了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-05
Array_rand 本身就是要设两个值吧?一个并不符合函数的要求。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网