dozr13344 2012-08-20 12:57
浏览 11
已采纳

检索Array中给定子键的所有父键

I've been breaking my head over this one but can't seem to find a solution. I need a function that retrieves all parent keys of a given child key. So for example if I have an array like this:

array(
    'apples' => array(
        'bananas' => array(
            'strawberries' => array(
                'fruit' => array()
            )
        )
    )
)

I would call the function like 'key_get_parents($key, $array)', and it would return an array with all the parent keys. In this example that would be array('apples', 'bananas', 'strawberries').

  • 写回答

1条回答 默认 最新

  • dpfwhb7470 2012-08-20 13:25
    关注
    $array = array(
        'apples' => array(
                'bananas' => array(
                        'strawberries' => array(
                                'fruit' => array()
                        )
                )
        )
     );
    
    function key_get_parents($subject, $array)
    {
      foreach ($array as $key => $value)
      {
        if (is_array($value))
        {
          if (in_array($subject, array_keys($value)))
            return array($key);
          else
          {
            $chain = key_get_parents($subject, $value);
            if (!is_null($chain))
              return array_merge(array($key), $chain);
          }
        }
      }
    
      return null;
    }
    
    // Prints "Array ( [0] => apples [1] => bananas )"
    print_r(key_get_parents('strawberries', $array)); 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来