代码之家  ›  专栏  ›  技术社区  ›  ondrobaco

PHP将两个数组合并为一个

  •  0
  • ondrobaco  · 技术社区  · 16 年前

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

    这是第一个数组

    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 回复  |  直到 16 年前
        1
  •  1
  •   munch    16 年前

    在这种格式中,你真的需要自己做大量的腿部工作,不能仅仅使用数组合并来组合数组。它必须是一个更为定制的工作,比如:

    $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]);
    }
    
        2
  •  0
  •   Ganesh Shankar    16 年前

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

    数组合并可能是您要查找的内容…

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