我想检查数组中是否存在值并打印一个随机值,但是它给出了未定义的索引错误

问题描述

我想检查数组中是否存在值并打印一个随机值,但是它给出了未定义的索引错误

这是代码

<?PHP

$agents = array(9986344xxx,9663275yyy);
function agent(){
    global $agents;
    if (in_array(9986344xxx,$agents) || in_array(9663275yyy,$agents)) {
        $random = array_rand($agents);
        echo $agents[$random[0]];
     } 
     else{
        echo "notfound";
     }
}

agent();

解决方法

array_rand(array $array [,int $num = 1 ])返回一个键数组,如果定义了$num,则返回1,或者返回单个值。

由于您未设置第二个参数,因此它将返回一个数字值,即数组随机选择的数字键0或1。

更改您的代码以解决该问题:

$agents = array('9986344xxx','9663275yyy');
function agent(){
    global $agents;
    if (in_array('9986344xxx',$agents) || in_array('9663275yyy',$agents)) {
        $random = array_rand($agents);
        echo $agents[$random]; // <------------- notice this
     } 
     else{
        echo "notfound";
     }
}

agent();

fiddle