Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Merge two multidimensional arrays and reindex all subarrays

I have two arrays, I want to merge these two arrays into single array. Please view the detail below:

First Array:

Array
(
    [0] => Array
        (
            [a] => 1
            [b] => 2
            [c] => 3
        )

    [1] => Array
        (
            [a] => 3
            [b] => 2
            [c] => 1
        )
)

Second Array:

Array
(
    [0] => Array
        (
            [d] => 4
            [e] => 5
            [f] => 6
        )

    [1] => Array
        (
            [d] => 6
            [e] => 5
            [f] => 4
        )
)

I want this result. Does somebody know how to do this?

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

    [1] => Array
        (
            [0] => 3
            [1] => 2
            [2] => 1
        )
    [2] => Array
        (
            [0] => 4
            [1] => 5
            [2] => 6
        )

    [3] => Array
        (
            [0] => 6
            [1] => 5
            [2] => 4
        )
)

Hope you have understand the question. Thank you in advance.

like image 592
Rajesh Shrestha Avatar asked Dec 19 '11 13:12

Rajesh Shrestha


2 Answers

Try array_merge:

$result = array_merge($array1, $array2);
like image 119
Nakkeeran Avatar answered Sep 20 '22 15:09

Nakkeeran


FIXED (again)

function array_merge_to_indexed () {
    $result = array();

    foreach (func_get_args() as $arg) {
        foreach ($arg as $innerArr) {
            $result[] = array_values($innerArr);
        }
    }

    return $result;
}

Accepts an unlimited number of input arrays, merges all sub arrays into one container as indexed arrays, and returns the result.

EDIT 03/2014: Improved readability and efficiency

like image 37
DaveRandom Avatar answered Sep 21 '22 15:09

DaveRandom