我在使用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);
答案 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);
如果匹配则您不应返回...