php array_search为第一个元素返回0?

时间:2011-07-19 16:02:58

标签: php arrays

我有这段代码

$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失败的元素...有关如何检查值是否在数组中而没有失败的任何想法第一个元素

4 个答案:

答案 0 :(得分:29)

if (array_search($current_page, $restaurant) !== FALSE ) {
    echo "KEEP ME";
}

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

答案 1 :(得分:4)

我认为在这种情况下使用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

答案 2 :(得分:2)

我已经使用is_numeric函数来实现相同功能。

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

答案 3 :(得分:0)

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

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";
}

希望它有所帮助。