为了账号安全,请及时绑定邮箱和手机立即绑定

将子数组值与一个数组合并为一个数组

将子数组值与一个数组合并为一个数组

PHP
四季花海 2021-03-31 08:15:25
我可能没有正确地表达这个问题,所以这就是我们要实现的目标。array {     [0]=> {         ["Abilities"]=> { ["Numerical"]=> 3 }     }     [1]=> {         ["Abilities"]=> { ["Verbal"]=> 1 }     }     [2]=> {         ["Domain"]=> { ["Programming"]=> 0 }     } } 到array {     [0]=> {         ["Abilities"]=> { ["Numerical"]=> 3 ["Verbal"]=> 1 }     }     [1]=> {         ["Domain"]=> { ["Programming"]=> 0 }     } } 我从外部来源获得此阵列,因此我需要优化这种方式才能使用它。
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

从外部来源获得的数组就像需要合并到单个树中的一组独立分支。您可以使用递归函数来创建要使用的“优化”结构。无论每个分支的深度如何,都应使用递归方法。


function merge_branches(array $branches): array

{

    $merge = function ($node, &$tree) use (&$merge) {

        if (is_array($value = reset($node))) {

            $merge($value, $tree[key($node)]);        // merge branch node recursively

        } else {

            $tree[key($node)] = $value;               // set leaf node to value

        }

    };


    $tree = [];

    foreach ($branches as $branch) {

        $merge($branch, $tree);

    }

    return $tree;

}


$optimized = merge_branches($external);


查看完整回答
反对 回复 2021-04-09
  • 1 回答
  • 0 关注
  • 197 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信