d||ell

Quick Difference (array_merge vs ( array + array ))

May 18, 2013 · ☕️ 1 min read

Just in case you might ran into the same problem like I do when trying to add or merge two arrays but don’t want to re-index their keys. Might be in useful in cases where the index values or the keys of the array serves as a unique identifier to other related data.

So let’s go take a look at the example below:

$colors = array(
   '10' => 'blue',
   '14' => 'red',
   '18' => 'yellow'
);

$more_colors = array_merge( array('5' => 'white'), $colors );

// Output using var_dump( $more_colors )
array(4) {
   [0]=>
   string(5) "white"
   [1]=>
   string(4) "blue"
   [2]=>
   string(3) "red"
   [3]=>
   string(6) "yellow"
}

“Uh oh!”… Now that isn’t right. Notice that the indexes/keys are re-indexed. So here’s what you need to do.

$colors = array(
   '10' => 'blue',
   '14' => 'red',
   '18' => 'yellow'
);

$more_colors = array('5' => 'white') + $colors;

// Output
array(4) {
   [5]=>
   string(5) "white"
   [10]=>
   string(4) "blue"
   [14]=>
   string(3) "red"
   [18]=>
   string(6) "yellow"
}

“Tadaa!”. That’s it. When using the + operator, ensure that both must of type array or else you’ll be thrown with fatal error. The difference between the first example from the second example is that in the second we just simply prepend/append depending on the index value on the second array. The first example when using array_merge on the other hand re-indexes the keys.

Note: This is meant for simple array manipulation. I’ll later add an article describing how you’ll be able to achieve this on multi-dimentional arrays.


@dorelljames

Personal blog by @dorelljames
I love you and coding!

Let me know your thoughts... 😊

What's next?

Continue reading articles using the links below...

Copyright © 2023,d||ell. Built with Gatsby. Source on GitHub.