-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";

如何按值搜索并返回bla1or bla2?我不需要子密钥,只需要密钥。

4

2 回答 2

0

试试这个:

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

  foreach($keyid as $key => $keyid2)
   {
      if ( $keyid2 === $value )
         return $key.','.$key1;
   }
}
   return false;
}
于 2013-07-23T09:20:00.520 回答
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;
}
于 2013-07-23T09:58:19.427 回答