Skip to content
Advertisement

How to combine 2 arrays with the condition that 2 and 5 values will be from the second array?

There are two arrays:

$arrOne = [1, 3, 4];
$arrTwo = [2, 5,];
$newArr = [];

How to merge to get like this;

$newArr = [1, 2, 3, 4, 5];

Now displays through one, this option is not suitable.

foreach ($arrOne as $k => $v) {
 $newArr[] = $v;
 $newArr[] = $arrTwo[$k];
}

Here is another example. Tthe values can be different in the array.

$arrOne = [154, 32, 15]; 
$arrTwo = [682, 124,]; 

Again for this example it is necessary that the values from the second array always be at 2 and 5 positions in the new array:

$newArr = [154, 682, 32, 15, 124]; 

Advertisement

Answer

You can use array_splice to merge the arrays in the intended way to the specific indices:

array_splice( $arrOne, 1, 0, $arrTwo[0]); 
array_splice( $arrOne, 4, 0, $arrTwo[1]);

var_dump($arrOne);

Demo 1:

Using original data:

$arrOne = [1, 3, 4];
$arrTwo = [2, 5,];

https://3v4l.org/dAMav

Demo 2:

Using second set of data:

$arrOne = [154, 32, 15]; 
$arrTwo = [682, 124,]; 

https://3v4l.org/Xhl3K

User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement