$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 本身就是要设两个值吧?一个并不符合函数的要求。