2010-11-16 83 views
1

我有一個數組,內部的數組。我想搜索該數組中的值。搜索數組內的數組

目前我想:

foreach($retval as $k=>$v){ 

      if (is_array($v)){ 

      $search = array_search($group_name,$v); 

      } 

    } 

    if($search == FALSE) { 

     // Nothing was found 

    } else { 

      // results found 

     } 

一旦這樣做了,我只是想執行取決於結果是否被發現或不會出現在搜索行動。

你怎麼辦這樣做?

+2

你是否意識到你只考慮'$ retval'中的最後一個數組? – 2010-11-16 23:17:46

+0

不......我沒有意識到這一點。我不想承認它,但我仍然不... – willdanceforfun 2010-11-16 23:19:38

+3

喲dawg,我聽說你喜歡數組... – 2010-11-16 23:30:40

回答

3

您需要更改$search = array_search($group_name,$v);到:

$search = false; 
foreach($retval as $k=>$v){ 
    if(array_search($group_name,$v)){ 
     $search = true; 
    } 
} 

基本上,你只需要指定真實的搜索,如果你發現你正在尋找的價值。否則,您可以用false覆蓋搜索值。例如,假設搜索在元素0中,則將其設置爲true。然後在元素1中元素不存在,然後將搜索設置爲false。

此外,如果您只關心知道它在那裏,您可以在$search = true;之後添加break;以停止搜索數組。

+0

我喜歡你的想法。這很有意義。 – willdanceforfun 2010-11-16 23:37:39