How can make it so array_merge() overwrites two keys with different values but same key index from two arrays?
for example, merging:
[0] => 'whatever'
with
[0] => 'whatever', [1] => 'a', [2] => 'b'
should produce
[0] => 'whatever', [1] => 'a', [2] => 'b'
Basically I want array_merge to bahave the same way it behaves if the arrays have string keys...
Definition and Usage The array_merge_recursive() function merges one or more arrays into one array. The difference between this function and the array_merge() function is when two or more array elements have the same key. Instead of override the keys, the array_merge_recursive() function makes the value as an array.
The array_merge() function merges one or more arrays into one array. Tip: You can assign one array to the function, or as many as you like. Note: If two or more array elements have the same key, the last one overrides the others.
The array_merge() function accepts one or more arrays and returns a new array that contains the elements from the input arrays.
Use the + operator.
Compare array_merge to + operator:
<?php  $a1 = array(0=>"whatever",); $a2 = array(0=>"whatever",1=>"a",2=>"b");  print_r(array_merge($a1,$a2)); print_r($a1+$a2); ?>   Output:
Array (     [0] => whatever     [1] => whatever     [2] => a     [3] => b ) Array (     [0] => whatever     [1] => a     [2] => b )   The + operator still works if your associative array has the numerical keys out-of-order:
<?php  $a1 = array(0=>"whatever",); $a2 = array(1=>"a",0=>"whatever",2=>"b");  print_r(array_merge($a1,$a2)); print_r($a1+$a2); ?>   Output:
Array (     [0] => whatever     [1] => a     [2] => whatever     [3] => b ) Array (     [0] => whatever     [1] => a     [2] => b )   Notice array_merge in this case creates a new key.  Not desirable...
array_replace does exactly this!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With