2010-11-16 85 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