微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何以给定格式格式化多维数组

我有一个带有一些键的数组,这里我需要的是在相同的键上合并值,例如,键117和&的记分卡值. 107应该在输出数组中合并如下所示.

$input_array = array (

38 => array
    (
        117 => array
            (
                'scorecard' => array
                    (
                        0 => 'q4'
                    ),

                'business_plan' => array
                    (
                        0 => 'q4'
                    )
            ),

        107 => array
            (
                'scorecard' => array
                    (
                        0 => 'q1'
                    ),

                'business_plan' => array
                    (
                        0 => 'q2'
                    )
            ),

    ),

53 => array
    (
        373 => array
            (            
                'scorecard' => array
                    (
                        0 => 'q4'
                    ),

                'business_plan' => array
                    (
                        0 => 'q1'
                    )
            ),

        110 => array
            (       
                'scorecard' => array
                    (
                        0 => 'q4',
                        0 => 'q3'
                    ),

                'business_plan' => array
                    (
                        0 => 'q4'
                    ),

                'marketing_plan' => array
                    (
                        0 => 'q3',
                        1 => 'q4'
                    )

            )

    ),

318 => array
    (
        2279 => array
            (             
                'scorecard' => array
                    (
                        0 => 'q4'
                    )
            )

    )

 );

输出数组将包含如下值: –

 Array
 (
[38] => Array
    (
     [scorecard] => Array
                    (
                        [0] => q4
                        [1] => q1
                    )
     [business_plan] => Array
                    (
                        [0] => q4
                        [1] => q2
                    )            
    )

[53] => Array
    (

        [scorecard] => Array
            (
                 [0] => q4
                 [1] => q3
            )

        [business_plan] => Array
            (
                [0] => q1
                [0] => q4
            )
        [marketing_plan] => Array
            (
                [0] => q3
                [1] => q4
            )
    )

[318] => Array
    (
        [scorecard] => Array
            (
                [0] => q4
            )        
    )

 )

解决方法:

它可以通过组合array_map,array_reducearray_merge_recursive来完成:

$result = array_map(function ($item) {
    return array_reduce($item, 'array_merge_recursive', []);
}, $input_array);

这是working demo.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐