PHP Merge数组具有相同的键和相同的值 [英] PHP Merge array with same keys and one same value

查看:78
本文介绍了PHP Merge数组具有相同的键和相同的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要合并一个PHP数组,该数组有2个名为 targetXX的数组,我可以有2个或更多。每个目标都有相同的键,对于每个键,我都有一个具有2个值a和b的数组,两个目标中a始终相同,但是我需要像这样合并两个B值:

I need to merge a PHP array, this array has 2 arrays into it named "targetXX", I can have 2 or more. Each target have the same keys, for each key I have an array with 2 values a and b, a is always the same in both targets, but I need to merge both B values like this:

Array
(
    [0] => Array
        (
            [target] => hitcount(stats.asdf1.requests, "1min")
            [datapoints] => Array
                (
                    [0] => Array
                        (
                            [0] => 1200
                            [1] => 1392282200
                        )

                    [1] => Array
                        (
                            [0] => 1400
                            [1] => 1392282260
                        )

                    [2] => Array
                        (
                            [0] => 600
                            [1] => 1392282320
                        )

                    [3] => Array
                        (
                            [0] => 200
                            [1] => 1392282380
                        )

                    [4] => Array
                        (
                            [0] => 400
                            [1] => 1392282440
                        )

                    [5] => Array
                        (
                            [0] => 600
                            [1] => 1392282500
                        )
                )
        )
    [1] => Array
        (
            [target] => hitcount(stats.asdf.requests, "1min")
            [datapoints] => Array
                (
                    [0] => Array
                        (
                            [0] => 4321
                            [1] => 1392282200
                        )

                    [1] => Array
                        (
                            [0] => 76567
                            [1] => 1392282260
                        )

                    [2] => Array
                        (
                            [0] => 5556
                            [1] => 1392282320
                        )

                    [3] => Array
                        (
                            [0] => 7675
                            [1] => 1392282380
                        )

                    [4] => Array
                        (
                            [0] => 2344
                            [1] => 1392282440
                        )

                    [5] => Array
                        (
                            [0] => 0999
                            [1] => 1392282500
                        )
                )
        )

结果:

    Array
(
    [0] => Array
        (
            [target] => hitcount(stats.asdf1.requests, "1min")
            [datapoints] => Array
                (
                    [0] => Array
                        (
                            [0] => 1200
                            [1] => 1392282200
                            [2] => 4321
                        )

                    [1] => Array
                        (
                            [0] => 1400
                            [1] => 1392282260
                            [2] => 76567
                        )

                    [2] => Array
                        (
                            [0] => 600
                            [1] => 1392282320
                            [2] => 5556
                        )

                    [3] => Array
                        (
                            [0] => 200
                            [1] => 1392282380
                            [2] => 7675
                        )

                    [4] => Array
                        (
                            [0] => 400
                            [1] => 1392282440
                            [2] => 2344
                        )

                    [5] => Array
                        (
                            [0] => 600
                            [1] => 1392282500
                            [2] => 0999
                        )
                )
        )


推荐答案

使用 array_merge() 来实现:

Use array_merge() to achieve this:

$newArray = array();

foreach ($myArray['target2'] as $key => $innerArr1) {
    $newArray['target'][$key] = array_merge(
        $myArray['target1'][$key],  /* 0th and 1st index */
        array($innerArr1[1])        /* 2nd index         */
    );
}

print_r($newArray);

输出:

Array
(
    [target] => Array
        (
            [0] => Array
                (
                    [0] => 333333
                    [1] => 13
                    [2] => 99
                )

            [1] => Array
                (
                    [0] => 444444
                    [1] => 15
                    [2] => 98
                )

            [2] => Array
                (
                    [0] => 555555
                    [1] => 17
                    [2] => 97
                )

        )

)

这篇关于PHP Merge数组具有相同的键和相同的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆