PHP 7 interview question · Most asked

What is the difference between `array_merge()` and the `+` operator on arrays?

Summary

array_merge() appends and renumbers integer keys, while string keys from later arrays overwrite earlier ones. + keeps the left array's keys and only adds keys that don't already exist.

Longer Answer

[0 => 'a'] + [0 => 'b'] gives [0 => 'a']; array_merge([0 => 'a'], [0 => 'b']) gives ['a', 'b']. + is handy for applying defaults: $options + $defaults. array_replace() overwrites by key without renumbering.

Key Points

  • array_merge: renumber ints, overwrite strings
  • +: left wins, nothing renumbered
  • $options + $defaults for defaults
  • array_replace overwrites by key

More most-asked PHP 7 questions

← All PHP 7 questions