2013-07-23 68 views
-1

我有一個多維數組是這樣的:如何通過值進行搜索並獲取多維數組中的密鑰?

$a['bla1']['blub1']="test123"; 
$a['bla1']['blub2']="test1234"; 
$a['bla1']['blub3']="test12345"; 
$a['bla2']['blub1']="test123456"; 
$a['bla2']['blub2']="test12344e45"; 
$a['bla2']['blub3']="test12345335"; 

如何通過值搜索和找回bla1bla2?我不需要子鍵,只需要鍵。

回答

0

試試這個:

function searcharray($a, $value) 
{ 
    foreach($a as $key1 => $keyid) 
    { 

    foreach($keyid as $key => $keyid2) 
    { 
     if ($keyid2 === $value) 
     return $key.','.$key1; 
    } 
} 
    return false; 
} 
+0

謝謝!但是我發現了另一個解決我的問題的方法這比我上面描述的要容易得多。我可以通過數組中的第一個條目過濾關聯數組並獲取最後一個。因爲「blas」是基地網址,並且這些值是一些特定的鏈接。 – user2600101

0

此功能遞歸搜索數組任何深度,並返回其下$needle被發現的主要關鍵:

function get_main_key($arr, $needle) { 
    $out = FALSE; 
    foreach ($arr as $key => $value) { 
     if ($value == $needle) { 
      $out = $key; 
     } elseif (is_array($value)) { 
      $ret = get_main_key($value, $needle); 
      $out = (! empty($ret)) ? $key : $out; 
     } 
    } 
    return $out; 
} 
+0

剛剛更新了我的答案。 –

相關問題