Skip to content

Instantly share code, notes, and snippets.

@GuyPaddock
Created December 30, 2019 22:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save GuyPaddock/bf1ff5e793e4154d2801bf8835b9a263 to your computer and use it in GitHub Desktop.
Save GuyPaddock/bf1ff5e793e4154d2801bf8835b9a263 to your computer and use it in GitHub Desktop.
How array_merge() compares to the + operator when working with different array types
On PHP 7.2.24-0ubuntu0.18.04.1 (cli) (built: Oct 28 2019 12:07:07) ( NTS ):
Result of combining:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
...with:
Array
(
[0] => 4
[1] => 5
[2] => 6
)
via +:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
Result of combining:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
...with:
Array
(
[0] => 4
[1] => 5
[2] => 6
)
via array_merge:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
)
Result of combining:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
...with:
Array
(
[a] => 1
[b] => 2
[c] => 3
)
via +:
Array
(
[0] => 1
[1] => 2
[2] => 3
[a] => 1
[b] => 2
[c] => 3
)
Result of combining:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
...with:
Array
(
[a] => 1
[b] => 2
[c] => 3
)
via array_merge:
Array
(
[0] => 1
[1] => 2
[2] => 3
[a] => 1
[b] => 2
[c] => 3
)
Result of combining:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
...with:
Array
(
[a] => 4
[d] => 5
[e] => 6
)
via +:
Array
(
[0] => 1
[1] => 2
[2] => 3
[a] => 4
[d] => 5
[e] => 6
)
Result of combining:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
...with:
Array
(
[a] => 4
[d] => 5
[e] => 6
)
via array_merge:
Array
(
[0] => 1
[1] => 2
[2] => 3
[a] => 4
[d] => 5
[e] => 6
)
Result of combining:
Array
(
[0] => 4
[1] => 5
[2] => 6
)
...with:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
via +:
Array
(
[0] => 4
[1] => 5
[2] => 6
)
Result of combining:
Array
(
[0] => 4
[1] => 5
[2] => 6
)
...with:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
via array_merge:
Array
(
[0] => 4
[1] => 5
[2] => 6
[3] => 1
[4] => 2
[5] => 3
)
Result of combining:
Array
(
[0] => 4
[1] => 5
[2] => 6
)
...with:
Array
(
[a] => 1
[b] => 2
[c] => 3
)
via +:
Array
(
[0] => 4
[1] => 5
[2] => 6
[a] => 1
[b] => 2
[c] => 3
)
Result of combining:
Array
(
[0] => 4
[1] => 5
[2] => 6
)
...with:
Array
(
[a] => 1
[b] => 2
[c] => 3
)
via array_merge:
Array
(
[0] => 4
[1] => 5
[2] => 6
[a] => 1
[b] => 2
[c] => 3
)
Result of combining:
Array
(
[0] => 4
[1] => 5
[2] => 6
)
...with:
Array
(
[a] => 4
[d] => 5
[e] => 6
)
via +:
Array
(
[0] => 4
[1] => 5
[2] => 6
[a] => 4
[d] => 5
[e] => 6
)
Result of combining:
Array
(
[0] => 4
[1] => 5
[2] => 6
)
...with:
Array
(
[a] => 4
[d] => 5
[e] => 6
)
via array_merge:
Array
(
[0] => 4
[1] => 5
[2] => 6
[a] => 4
[d] => 5
[e] => 6
)
Result of combining:
Array
(
[a] => 1
[b] => 2
[c] => 3
)
...with:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
via +:
Array
(
[a] => 1
[b] => 2
[c] => 3
[0] => 1
[1] => 2
[2] => 3
)
Result of combining:
Array
(
[a] => 1
[b] => 2
[c] => 3
)
...with:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
via array_merge:
Array
(
[a] => 1
[b] => 2
[c] => 3
[0] => 1
[1] => 2
[2] => 3
)
Result of combining:
Array
(
[a] => 1
[b] => 2
[c] => 3
)
...with:
Array
(
[0] => 4
[1] => 5
[2] => 6
)
via +:
Array
(
[a] => 1
[b] => 2
[c] => 3
[0] => 4
[1] => 5
[2] => 6
)
Result of combining:
Array
(
[a] => 1
[b] => 2
[c] => 3
)
...with:
Array
(
[0] => 4
[1] => 5
[2] => 6
)
via array_merge:
Array
(
[a] => 1
[b] => 2
[c] => 3
[0] => 4
[1] => 5
[2] => 6
)
Result of combining:
Array
(
[a] => 1
[b] => 2
[c] => 3
)
...with:
Array
(
[a] => 4
[d] => 5
[e] => 6
)
via +:
Array
(
[a] => 1
[b] => 2
[c] => 3
[d] => 5
[e] => 6
)
Result of combining:
Array
(
[a] => 1
[b] => 2
[c] => 3
)
...with:
Array
(
[a] => 4
[d] => 5
[e] => 6
)
via array_merge:
Array
(
[a] => 4
[b] => 2
[c] => 3
[d] => 5
[e] => 6
)
Result of combining:
Array
(
[a] => 4
[d] => 5
[e] => 6
)
...with:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
via +:
Array
(
[a] => 4
[d] => 5
[e] => 6
[0] => 1
[1] => 2
[2] => 3
)
Result of combining:
Array
(
[a] => 4
[d] => 5
[e] => 6
)
...with:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
via array_merge:
Array
(
[a] => 4
[d] => 5
[e] => 6
[0] => 1
[1] => 2
[2] => 3
)
Result of combining:
Array
(
[a] => 4
[d] => 5
[e] => 6
)
...with:
Array
(
[0] => 4
[1] => 5
[2] => 6
)
via +:
Array
(
[a] => 4
[d] => 5
[e] => 6
[0] => 4
[1] => 5
[2] => 6
)
Result of combining:
Array
(
[a] => 4
[d] => 5
[e] => 6
)
...with:
Array
(
[0] => 4
[1] => 5
[2] => 6
)
via array_merge:
Array
(
[a] => 4
[d] => 5
[e] => 6
[0] => 4
[1] => 5
[2] => 6
)
Result of combining:
Array
(
[a] => 4
[d] => 5
[e] => 6
)
...with:
Array
(
[a] => 1
[b] => 2
[c] => 3
)
via +:
Array
(
[a] => 4
[d] => 5
[e] => 6
[b] => 2
[c] => 3
)
Result of combining:
Array
(
[a] => 4
[d] => 5
[e] => 6
)
...with:
Array
(
[a] => 1
[b] => 2
[c] => 3
)
via array_merge:
Array
(
[a] => 1
[d] => 5
[e] => 6
[b] => 2
[c] => 3
)
<?php
$x = [1,2,3];
$y = [4,5,6];
$a = ['a' => 1, 'b' => 2, 'c' => 3];
$b = ['a' => 4, 'd' => 5, 'e' => 6];
foreach ([$x, $y, $a, $b] as $array1) {
foreach ([$x, $y, $a, $b] as $array2) {
if ($array1 === $array2) {
continue;
}
foreach (['+', 'array_merge'] as $op) {
print "Result of combining:\n";
print_r($array1);
print "\n";
print "...with:\n";
print_r($array2);
print "via {$op}:\n";
if ($op === '+') {
print_r($array1 + $array2);
}
elseif ($op === 'array_merge') {
print_r(array_merge($array1, $array2));
}
print "\n\n";
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment