如何按值搜索并获取多维数组中的键?

时间:2013-07-23 09:17:35

标签: php arrays search multidimensional-array

我有一个像这样的多维数组:

$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?我不需要子密钥,只需要密钥。

2 个答案:

答案 0 :(得分:0)

试试这个:

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

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

答案 1 :(得分: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;
}