PHP Array_search将找不到现有值

时间:2015-10-17 15:01:20

标签: php arrays

我正在尝试在一个简单的数组上使用array_search:

        echo "<br> Search for : -".ucfirst(strtolower(trim($rowData[0][2]))).'-';

这是值的索引(我知道但是我希望PHP为我找到它&gt;&lt;):

        echo '<br>-'.$listMetiers[0].'-'; 

这是完整的数组:

        echo '<pre>';
        print_r($listMetiers);
        echo '</pre>';

        $id_metier = array_search(ucfirst(strtolower(trim($rowData[0][2]))),$listMetiers);

        if(!$id_metier)
        {
          echo ' NOT FOUND !<br>';
          $id_metier = -666;
        }
        else
        {
          echo 'GOOD : '.$id_metier.'<br>';
        }

值在数组中但是array_search找不到它!查看执行此代码时的内容:

enter image description here

发生了什么事?

2 个答案:

答案 0 :(得分:3)

array_searh返回0,PHP将其视为虚假值。

你应该改变这个

!$id_metier

进入这个

$id_metier === false

答案 1 :(得分:1)

你的测试很糟糕,使用:

if($id_metier < 0){ // not found
// ...
} else {            // found
// ...
}