如何合并两个关联数组,以便键碰撞导致两个值的数组?

I have two or more array with the same key, I want to merge these arrays but keep the value. Exp:

    $arr1 = array("message" => "message 1");
    $arr2 = array("message" => "message 2");
    echo "<pre>";
    print_r($arr3 = somefunction($arr2,$arr1));
    echo "</pre>";

I want result like this:

Array
(
     [message] => Array
          (
                [0] => message 1
                [1] => message 2
          )
)

array_merge_recursive() : merges the elements of one or more arrays together so that the values of one are appended to the end of the previous one. It returns the resulting array.

Example :

<?php
$arr1 = array("message" => "message 1");
$arr2 = array("message" => "message 2");
echo "<pre>";
print_r($arr3 = array_merge_recursive($arr2,$arr1));
echo "</pre>";
?>

Output :

Array
(
    [message] => Array
        (
            [0] => message 2
            [1] => message 1
        )

)

more info : http://php.net/manual/en/function.array-merge-recursive.php

If you just want the values and no keys use array_values then array_merge

$masterArray = new Array();
foreach( $arr in $arrs ) {
    array_merge( $masterArray, array_values( $arr ) );
}

if you have an odd number of keys in one array you may want to insure all sub items are arrays

$arrays = array(
    array("message" => "message 1", "other"=>'message 3'),
    array("message" => "message 2")
);
$merged = array();
foreach($arrays as $array){
    foreach ($array as $key => $item){
        $merged[$key][] = $item;
    }
}
echo '<pre>';
print_r($merged);

Output:

 Array
    (
        [message] => Array
            (
                [0] => message 1
                [1] => message 2
            )

        [other] => Array
            (
                [0] => message 3
            )

    )

Array merge output

   Array
    (
        [message] => Array
            (
                [0] => message 2
                [1] => message 1
            )

        [other] => message 3
    )