PHP in_array函数不起作用

时间:2018-07-03 19:07:46

标签: php arrays

我在使用in_array()时遇到了一些问题 我想从100-999创建一个尚未存储在数组中的唯一编号,但是in_array函数似乎不起作用。 下面的示例是我现在的代码。

我已经将2个字符串推到顶部的数组中。在函数中,我尝试运行它,但是只获取值“ sb100”,而我应该得到“ sb102”,因为数组中已经有100和101。

$uniqueIDs[] = "sb100";
$uniqueIDs[] = "sb101";

function keyExists($ui){
    for($i=100;$i<=999;$i++){
        $R = "sb".$i;
        if(in_array($R, $ui)){
            return "";
        }else{
            return $R; 
            break;
        }
    }
}    

keyExists($uniqueIDs);

2 个答案:

答案 0 :(得分:4)

问题在于,当它找到一个已经存在的元素时,就会执行return "";。相反,如果它在数组中,则继续操作,如果不是数组,则返回...

function keyExists($ui){
    for($i=100;$i<=999;$i++){
        $R = "sb".$i;
        if(!in_array($R, $ui)){
            return $R;
        }
    }
}

答案 1 :(得分:0)

$uniqueIDs[] = "sb100";
$uniqueIDs[] = "sb101";

function keyExists($ui){
   for($i=100;$i<=999;$i++){
        $R = "sb".$i;
        if(!in_array($R, $ui)){
           return $R; 
       }
   }

}

echo keyExists($uniqueIDs);

如果匹配则您不应返回...