PHP array_search第一个元素返回0


php array_search returning 0 for the first element?

我有这样的代码

$restaurant = array('/restaurant_pos/', '/bar_nightclub_pos/')
$current_page = $_SERVER['REQUEST_URI'];
if (array_search($current_page, $restaurant)) {
    echo "KEEP ME";
}

问题是array_search返回0,因为'/restaurant_pos/'是导致if失败的数组中的第一个元素…关于如何检查值是否在数组中而不会在第一个元素

上失败,有什么想法吗?
if (array_search($current_page, $restaurant) !== FALSE ) {
    echo "KEEP ME";
}

手动链接:http://php.net/manual/en/function.array-search.php

我认为在这种情况下使用in_array()会更好

$restaurant = array('/restaurant_pos/', '/bar_nightclub_pos/')
$current_page = $_SERVER['REQUEST_URI'];
if (in_array($current_page, $restaurant)) {
    echo "KEEP ME";
}
http://php.net/manual/en/function.in-array.php

我已经使用了is_numeric函数来达到相同的效果。

if(is_numeric(array_search($entry, $array))){
            //if true, this block will be executed
 }

根据我自己的经验,如果你有,例如:

Array
(
    [1] => Array
        (
            [0] => a
            [1] => b
        )
    [2] => Array
        (
            [0] => b
        )
    [4] => Array
        (   
           [0] => c
        )
)

array_search("a", $array[3]) !== FALSE)上,它返回TRUE相同,所以覆盖所有情况,也在null元素上,最好使用:

if ( (array_search($element, $array) !== FALSE) && ($array) ) {
    echo "found";
}

希望能有所帮助。