2011-07-19 31 views
8

我有这样的代码php array_search为第一个元素返回0?

$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 /”是数组中的第一个元素,这是造成的,如果失败......关于如何检查任何想法如果值是数组中没有失败的第一个元素

回答

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

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

+2

+1使用in_array():这是手册中记录(我将添加链接到你的答案) - 事实上,他们会仔细解释它 - 所以OP在询问之前显然没有进行研究。 – Spudley

+1

哈哈,从来没有见过我自己。感谢那! – 2011-07-19 16:09:54

+0

谢谢,我确实看过文档,注意到大红色的盒子,但我试过!==错误,它失败了,所以我发布的问题......谢谢@Jan Westerdiep – Trace

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

希望它能帮助。

2

我认为这将是更好的在这种情况下

$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

相关问题