如何在2和5个值来自第二个数组的条件下组合2个数组



有两个数组:

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

如何合并成这样;

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

现在显示通过一个,这个选项是不合适的。

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

这里是另一个例子。T数组中的值可以不同。

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

同样,对于这个例子,来自第二个阵列的值必须始终位于新阵列中的2和5个位置:

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

您可以使用array_splice以预期的方式将数组合并到特定索引:

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

演示1:

使用原始数据:

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

https://3v4l.org/dAMav

演示2:

使用第二组数据:

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

https://3v4l.org/Xhl3K

您可以使用array_merge和排序函数来实现以下功能:

$newArr = array_merge($arrOne, $arrTwo);  // it will be [1, 3, 4, 2, 5]  
sort($newArr); // it will sort array [1, 2, 3, 4, 5]

你现在可以使用$newArr,它已经对数据进行了排序

$arrOne = [1, 3, 4];
$arrTwo = [2, 5];
$newArr = [];
foreach($arrOne as $key => $one) {
switch($key) {
case 1: 
$newArr[] = $arrTwo[0];
break;
case 4: 
$newArr[] = $arrTwo[1];
break;
}
$newArr[] = $one;
}
if(count($newArr) < 5) {
$newArr[] = $arrTwo[1];
}

演示链接

在这里,我们考虑在第二个阵列中总是有两个元素

$arrayOne = [12,23,45,56,65,78,99];
$arrayTwo = [2,5];
$mergedArray = [];
foreach($arrayOne as $key => $value) {

$position = $key + 1;
if ($position === 2) {
$mergedArray[] = $arrayTwo[0];
} else if ($position === 4) {
$mergedArray[] = $arrayTwo[1];
}
$mergedArray[] = $value;
}

相关内容

最新更新