2012-11-28 76 views
0

我的數組是這樣的:搜索數組內的值和返回鍵

$myarr = array(
    1 => array(2, 4, 6, 7, 10, 11), 
    2 => array(95, 5, 8, 15, 21) 
); 

是否可以搜索陣列如通。爲8,然後返回值的位置下的密鑰號碼?

例如, 95是關鍵號碼的內部。 2,那麼如果它發現95它應該返回2 - 和FALSE否則。另一個例子:11被發現在關鍵號碼的內部。 1,那麼它應該返回1FALSE

是否有這樣的PHP函數?

+1

您是否嘗試構建自己的功能? – Peon

+0

不,閱讀 - 我要求一個PHP的內置函數。 – Scott

回答

2

我認爲你正在尋找array_walk()和/或array_walk_recursive()。

1

容易餡餅...我想你可以自己想通了......

function searchInMyArr($myarray, $search_term){ 
    $position = false; 
    foreach ($myarray as $key => $subarray){ 
     if (in_array($search_term,$subarray){ 
      $position = $key; 
      break; 
     } 
    } 

    return $position; 
} 
+0

-1!= false(根據需要) – mkilmanas

+0

錯讀。感謝那。 –

+0

@AntonioLaguna如果價值是在多個鍵,你的功能將只返回第一個發現.. – Peon

0

不,您的案例太具體,不太可能被別人使用,因此它不在PHP本身。

這裏是一個可能的解決方案

function search_array_multilevel($needle, $haystack) 
{ 
    foreach ($haystack as $index => $subarray) { 
     if (in_array($needle, $subarray)) { 
      return $index; 
     } 
    } 
    return false; 
}