这是array_search的错误吗?

时间:2013-03-22 14:47:51

标签: php

 if(array_search('test',array('0'=>'test'))){
    echo 'test';
}

不回应任何事情。但是:

if(array_search('test',array('0'=>'random', '1'=>'test'))){
    echo 'test';
}

回应测试?

2 个答案:

答案 0 :(得分:2)

array_search()正在返回0,其中(在非严格比较中)为false

var_dump(array_search('test',array('0'=>'test'))); // int(0)
var_dump(array_search('test',array('0'=>'random', '1'=>'test'))); // int(1)

改为使用!== false (as the docs suggest)

if(array_search('test',array('0'=>'test')) !== false){
    echo '1 ';
}
if(array_search('test',array('0'=>'random', '1'=>'test')) !== false){
    echo '2 ';
}

答案 1 :(得分:0)

您可以使用(in_array)函数来检查数组中是否有var

像这样:

if(in_array('test',array('0'=>'random', '1'=>'test'))){
echo 'exist';
}