I have arrays order (list) by ref :
$a = array('Blue', 'Red', 'Orange', 'Yellow');
And new elements (mixing order + new element) :
$b = array('Orange', 'Blue', 'Yellow', 'Red', 'Pink');
I want my outcome ($b
) to be, like in $a
order + new(s) element(s) :
Result : Array
(
[0] => Blue
[1] => Red
[2] => Orange
[3] => Yellow
[4] => Pink
)
Any idea in language reference ?
If you want to preserve array indexes doing $a + difference($b-a)
$a = array('Blue', 'Red', 'Orange', 'Yellow');
$b = array('Orange', 'Blue', 'Yellow', 'Red', 'Pink');
$merged = array_merge($a, array_diff($b, $a));
print_r($merged);
outputs
Array
(
[0] => Blue
[1] => Red
[2] => Orange
[3] => Yellow
[4] => Pink
)
If you're not interested in keeping keys values you can also use array_unique with an array_merge:
$merged = array_unique(array_merge($a, $b)));
print_r($merged);
outputs:
Array
(
[0] => Blue
[1] => Red
[2] => Orange
[3] => Yellow
[8] => Pink
)