按顺序合并数组

时间:2018-12-06 16:25:36

标签: php arrays merge

我想知道从其他两个数组创建单个数组的最佳方法是根据每个相对数组中的位置将它们合并到哪里。

IE

代码:

    $data1 = array("cat", "goat");
    $data2 = array("dog", "cow");

我知道如果您使用array_merge,您将得到:

Output:
    Array
    (
    [0] => cat
    [1] => goat
    [2] => dog
    [3] => cow
    )

但是我需要:

Output:
    Array
    (
    [0] => cat
    [1] => dog
    [2] => goat
    [3] => cow
    )

任何建议都会很棒:)

预先感谢

3 个答案:

答案 0 :(得分:0)

尝试一下

$newArray = array();
for($i=0;$i<count($data1);$i++){
  $newArray[] = $data1[$i];
  if(isset($data2[$i])
    $newArray[] = $data2[$i];
}

if(count($data2)>count($data1){
  for($i=count($data1);$i<count($data2);$i++){
     $newArray[] = $data2[$i];
  }
}

希望这对您有帮助

答案 1 :(得分:0)

也许是这样:

$array1 = [1,2,3,4];
$array2 = [5,6,7,8,9,10,11,12];

$array3 = [];

$length = count($array1) > count($array2) ? count($array1) : count($array2);
for($i = 0; $i < $length; $i++)
{
    if(!empty($array1[$i])) {
        array_push($array3, $array1[$i]);
    }
    if(!empty($array2[$i])) {
        array_push($array3, $array2[$i]);
    }
}

print_r($array3);

答案 2 :(得分:0)

您也可以尝试以下操作:

$a=call_user_func_array('array_merge',array_map(null,$data1,$data2));

使用array_map()null作为函数参数,可以将向量转置为二维数组。然后,此数组的元素将在array_merge()调用中合并。用call_user_func_array()调用此外部函数,它将把作为参数传递的数组的每个元素都视为指定函数的参数(在本例中为“ array_merge”)。

您可以在此处找到一个有效的示例:https://rextester.com/HKNBM64781