array_rand()期望参数1是数组

时间:2014-10-12 08:51:14

标签: php arrays

我尝试使用下面的代码从数组中打印一个随机值70次但是我得到一个错误:'array_rand()期望参数1是数组'。

$q= array("top","below","right","left");
function ran(){
    $rand_keys = array_rand($q, 1);
    return $rand_keys[0];
}

for ($m=0; $m <70 ; $m++) {
    ran($q);
    echo ran();   
}

2 个答案:

答案 0 :(得分:3)

全局变量通常在函数内部不可见。您应该将$q放在函数参数列表中:

function ran($q) {
    $rand_keys = array_rand($q, 1);
    return $rand_keys[0];
}

然后将其称为:

echo ran($q);

答案 1 :(得分:1)

是的,添加$ q作为参数。 此外,您应该在索引$ rand_key中返回$ q的值。 你有点想念使用array_rand返回值。

给你这段代码:

$q = array("top","below","right","left");

for ($m = 0; $m <70 ; $m++) { 
    echo ran($q).' ';
}

function ran($q){
   $rand_keys = array_rand($q, 1);
   return $q[$rand_keys];
}