我有这样的代码
$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";
}
希望能有所帮助。