【问题标题】:Get an array element by key phpphp按键获取数组元素
【发布时间】:2013-05-11 01:44:01
【问题描述】:

我有一个(许多)数组,以不同的深度编码。问题是我知道我正在搜索的元素的键,但不知道编码的深度。例如,它可能是
Array ( [1] => Array ( [1] => Array ('abcd' => 'a' ) )Array ('abcd' => 'a' ) 那么有没有办法找到那个abcd 键呢?

【问题讨论】:

  • 递归循环直到找到它
  • 有更快的方法吗?我有很多数组。
  • 实际建模的“(许多)数组的数组”是什么?知道这将有助于其他人建议可能更适合您正在尝试做的事情的数据结构。
  • @Colin 这是一个使用 json_decode 解码 json 的数组
  • 是的,但是数据实际上代表什么?

标签: php arrays encoding key json


【解决方案1】:
function find_array_key($array,$keytofind){
 $found=false;
 if (is_array($array)&& $found==false){
   foreach($array as $key=>$value){
      if (is_array($value)&& $found==false){
        find_array_key($array,$keytofind)
      }else{ 
         if ($found==false && $key=$keytofind){
          $found=$value;
         }
      }
   }
   return $found;
 }

我没有运行这段代码来测试它,但它应该非常接近一个很好的递归函数,用于您正在尝试做的事情并返回您正在寻找的键的值

【讨论】:

    【解决方案2】:
    if (array_key_exists('abcd', $search_array))
    

    【讨论】:

    • 嗯,是的,但我想找到它并处理它,而不仅仅是验证它是否存在
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    • 2011-01-17
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 2011-06-15
    相关资源
    最近更新 更多