php将两个数组合并为一个

时间:2010-02-18 02:54:09

标签: php arrays string multidimensional-array

我有两个数组需要合并在一起并试图找出正确的方法。

这是第一个数组

Array
    (
        [IndividualOutmsg] => Array
            (
                [0] => Array
                    (
                        [user_id] => 3
                        [number] => 414566765
                        [msg] => some message
                    )

                [1] => Array
                    (
                        [user_id] => 3
                        [number] => 410335509
                        [msg] => any message
                    )

            )

    )

这是第二个数组:

Array
    (
        [0] => Array
            (
                [0] => OK
                [1] => 0
                [2] => d142b46128b869d0
                [3] => 6178977058476937
            )

        [1] => Array
            (
                [0] => OK
                [1] => 0
                [2] => 60f403f4e243e684
                [3] => 6198708709873543
            )
    )

我想得到的是:

Array
(
    [IndividualOutmsg] => Array
        (
            [0] => Array
                (
                    [user_id] => 3
                    [number] => 414566765
                    [msg] => some message
                    [sms_status] => OK
                    [error_code] => 0
                    [msg_id] => d142b46128b869d0
                    [msg_id_2] => 6178977058476937

                )

            [1] => Array
                (
                    [user_id] => 3
                    [number] => 410335509
                    [msg] => any message
                    [sms_status] => OK
                    [error_code] => 0
                    [msg_id] => 60f403f4e243e684
                    [msg_id_2] => 6198708709873543

                )

        )

)

2 个答案:

答案 0 :(得分:1)

在那种格式中,你真的必须自己做大量的工作,不能只使用array_merge来组合数组。它必须是一个更自定义的工作,如下:

$count = count($second_array);
for($i=0; $i<$count; $i++){
   $first_array['IndividualOutmsg'][$i]['sms_status'] = $second_array[0];
   $first_array['IndividualOutmsg'][$i]['error_code'] = $second_array[1];
   $first_array['IndividualOutmsg'][$i]['msg_id'] = $second_array[2];
   $first_array['IndividualOutmsg'][$i]['msg_id2'] = $second_array[3];
}

如果您要使用关联键设置输出第二个数组,那么使用array_merge组合它们要容易得多,前提是键没有冲突。

$count = count($second_array);
for($i=0; $i<$count; $i++){
   $first_array['IndividualOutmsg'][$i] = 
            array_merge($first_array['IndividualOutmsg'][$i], $second_array[$i]);
}

答案 1 :(得分:0)

http://au.php.net/manual/en/function.array-merge.php

阵列合并可能就是你要找的......

虽然您可能需要编写一个可以到达多维数组中正确位置的循环或函数,但执行合并并更改相关键。