【问题标题】:How to search by value and get key in multidimensional arrays?如何按值搜索并获取多维数组中的键?
【发布时间】:2023-03-28 14:40:02
【问题描述】:

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

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

【问题讨论】:

    标签: php arrays search multidimensional-array


    【解决方案1】:

    此函数递归搜索数组到任意深度并返回找到$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;
    }
    

    【讨论】:

      【解决方案2】:

      试试这个:

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

      【讨论】:

      • 谢谢!但我为我的问题找到了另一种解决方案。这比我上面描述的要容易得多。我可以通过数组中的第一个条目过滤关联数组并获取最后一个。因为“blas”是基本 url 和一些特定链接的值。
      猜你喜欢
      • 2012-03-05
      • 2018-01-13
      • 2014-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多