2011-07-19 10 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"; 
} 

問題が失敗する...確認する方法上の任意のアイデアを引き起こしている場合は、配列の最初の要素である「/ restaurant_pos /」ので、array_searchは0を返しているを持っています値は、最初の要素に失敗することなく、アレイ内にある場合

答えて

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

マニュアルリンク:、あなたが得た場合、例えば私自身の経験からhttp://php.net/manual/en/function.array-search.php

+2

1を使用する方がよいだろうと思う:これは(私はあなたの答えへのリンクを追加します)取扱説明書に記載されて - 実際には彼らはそれを注意深く説明する点を作っている - それでOPは尋ねる前に明らかに研究しなかった。 – Spudley

+1

母は、自分自身を見たこともありませんでした。ありがとうございました! –

+0

ありがとうと私はドキュメントを見て、大きな赤いボックスに気づいたが、私は試しました!== falseとそれが失敗したので、私は質問を投稿しました...ありがとうございます@ジャンWesterdiep – Trace

0

オン
Array 
(
    [1] => Array 
     (
      [0] => a 
      [1] => b 
     ) 

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

が、それはそうnull要素にも、すべてのケースをカバーするために、TRUE同じ返し、それはより良い使用です:

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

はそれがお役に立てば幸いです。

関連する問題