3

I have a two arrays and need to get one from them. array_merge, array_map etc. Doesn't give right result.

$array1 = [1,2,3,4,5];
$array2 = [a,b,c,d,e];

I need $array3 = [[1,a], [2,b], [3,c]]...

What is the best way to get that result?

janfitz
  • 1,183
  • 12
  • 21
MaoStream
  • 188
  • 9

2 Answers2

6

using array_map(null, $arr1, $arr2) you can achieve the result.
http://php.net/manual/en/function.array-map.php

php > $q = array_map(null, $array1, $array2);
php > print_r($q);
Array
(
    [0] => Array
        (
            [0] => 1
            [1] => a
        )

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

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

    [3] => Array
        (
            [0] => 4
            [1] => d
        )

    [4] => Array
        (
            [0] => 5
            [1] => e
        )

)
marmeladze
  • 6,468
  • 3
  • 24
  • 45
1

The for loop approach is the following:

<?php
$array1 = [1,2,3,4,5];
$array2 = ['a','b','c','d','e'];
$array3 = array();
if(count($array1) == count($array2))
{
    for($i = 0; $i < count($array1); $i++)
    {
        $array3[] = [$array1[$i],$array2[$i]];
    }
}
else
{
    die("SIZE MISMATCH");
}

echo '<pre>';
print_r($array3);

And the output is:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => a
        )

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

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

    [3] => Array
        (
            [0] => 4
            [1] => d
        )

    [4] => Array
        (
            [0] => 5
            [1] => e
        )

)
Shakti Phartiyal
  • 6,156
  • 3
  • 25
  • 46