Hexmen

Concatenating arrays in PHP

Just a quick post so I know where to look the next time I forget how to concatenate arrays in PHP.

Use array_merge to concatenate two numerically-indexed arrays; not array_push and not the array union operator: +.

$first = array('doh', 'ray', 'me');
$second = array('fah', 'soh', 'lah', 'te', 'do');
echo "Union: ", var_export($first + $second, true), "n";
echo "Merge: ", var_export(array_merge($first, $second), true), "n";
// array_push returns int, not an array:
array_push($first, $second);
echo "Push: ", var_export($first, true), "n";

The output:

Union: array (
    0 => 'doh',
    1 => 'ray',
    2 => 'me',
    3 => 'te',
    4 => 'do',
)
Merge: array (
    0 => 'doh',
    1 => 'ray',
    2 => 'me',
    3 => 'fah',
    4 => 'soh',
    5 => 'lah',
    6 => 'te',
    7 => 'do',
)
Push: array (
    0 => 'doh',
    1 => 'ray',
    2 => 'me',
    3 =>
    array (
        0 => 'fah',
        1 => 'soh',
        2 => 'lah',
        3 => 'te',
        4 => 'do',
    ),
)