2011-07-19 72 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

相關問題