Marek
Marek

Reputation: 45

Two arrays in one array PHP

I have one question: How can I push two arrays into one array, so scheme should look like:

array1 = array("element1", element2, "element3");
array2 = array("element4", element5, "element6");

[0] => FinalArray
        (
            [0] => array1[] => 
                      (
                            [0] = element1
                            [1] = element2
                            [2] = element3
                      )
            [1] => array2[] =>
                      (
                            [0] = element4
                            [1] = element5
                            [2] = element6
                      )
        )

I tried use array_push() or array_merge() but without success.

Thanks for hints.

Marek

Upvotes: 0

Views: 153

Answers (5)

Styphon
Styphon

Reputation: 10447

What you want is called a multi-dimensional array and is explained in the PHP documentation. You create an array and then set the values of that array to be arrays as well. You can go as deep as you need, the only limit is the available RAM. To create a multidimensional array you set your key and then another array as the value, such as this example:

$finalArray = array(
    0 => array (
        0 => "element1",
        1 => "element2",
        2 => "element3"
    ),
    1 => array (
        0 => "element4",
        1 => "element5",
        2 => "element6"
    ),
);

Of course the keys are entirely optional in that example, I included them for clarity.

You can create the child arrays as separate variables first if you wish. For example:

$array1 = array (
    0 => "element1",
    1 => "element2",
    2 => "element3"
);
$array2 = array (
    0 => "element4",
    1 => "element5",
    2 => "element6"
);
$finalArray = array(
    $array1,
    $array2
);

I've done an eval.in example so you can see that they both output the same results.

Upvotes: 1

RJParikh
RJParikh

Reputation: 4166

Try below method.

<?php
$array1 = array("element1", element2, "element3");
$array2 = array("element4", element5, "element6");

$finalArray =  array($array1,$array2);
print_r($finalArray);
?>

Output:

Array
(
    [0] => Array
        (
            [0] => element1
            [1] => element2
            [2] => element3
        )

    [1] => Array
        (
            [0] => element4
            [1] => element5
            [2] => element6
        )

)

Check code and result in link: Answer

Upvotes: 3

Maninderpreet Singh
Maninderpreet Singh

Reputation: 2587

Try with

METHOD 1

$final = array("finalArray"=>array($array1,$array2));

OUTPUT

Array
(
    [finalArray] => Array
        (
            [0] => Array
                (
                    [0] => element1
                    [1] => element2
                    [2] => element3
                )

            [1] => Array
                (
                    [0] => element4
                    [1] => element5
                    [2] => element6
                )

        )

)

METHOD 2

$final = array_merge(array($array1),array($array2));

OUTPUT

 Array
(
    [0] => Array
        (
            [0] => element1
            [1] => element2
            [2] => element3
        )

    [1] => Array
        (
            [0] => element4
            [1] => element5
            [2] => element6
        )

)

Upvotes: 2

Unex
Unex

Reputation: 1757

First of all create the array

$superArray = array();

then add your arrays in the array

$superArray[] = $array1;

$superArray[] = $array2;

And you should be ok ;)

Hope this helped,

Upvotes: 3

Andrii Mishchenko
Andrii Mishchenko

Reputation: 2694

Try $finalArray = [$array1, $array2];

Upvotes: 1

Related Questions