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

I want to check values are present in the array and print one random value, but it is giving undefined index error

提问人:vinaysirige 提问时间:9/19/2020 最后编辑:Nigel Renvinaysirige 更新时间:9/19/2020 访问量:29

问:

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

这是代码

<?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();
php 数组 undefined-index

评论


答:

0赞 Cid 9/19/2020 #1

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

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

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

$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();

小提琴