PHP最好的解决方案,以备用顺序合并数组

时间:2019-07-17 14:51:19

标签: php arrays merge

如下所示,合并两个给定数组的最佳方法是什么

$a = [1, 2, 3];
$b = [a, b, c];


$results = [1, a, 2, b, 3, c];

3 个答案:

答案 0 :(得分:1)

一个简单的循环可能是最简单的方法

$a = [1, 2, 3];
$b = [a, b, c];
$results = [];

foreach ($a as $key => $val) {
    $results[] = $val;
    // just in case the 2 arrays are not the same length
    if ( isset($b[$key] ){
        $results[] = $b[$key];
    }
}

答案 1 :(得分:0)

据我所知,您想交替合并这两个数组吗?

$arr1 = array(1, 3, 5);
$arr2 = array(2, 4, 6);
$count = (count($arr1) <= count($arr2)) ? count($arr2) : count($arr1);
$new = array();
for ($i = 0; $i < $count; $i++) 
{
    if(array_key_exists($arr1[$i])
    {
        $new[] = $arr1[$i];
    }
    if(array_key_exists($arr2[$i])
    {
        $new[] = $arr2[$i];
    }
}

因此它将替代地合并它,并且为了防止错误,它检查密钥是否存在。

答案 2 :(得分:-1)

选中此

<?php
    $a = [1, 2, 3];
    $b = [a, b, c];

    $cntA = count($a);
    $cntB = count($b);

    $results = [];
    $count = ($cntA <= $cntB) ? $cntB : $cntA;

    for($i=0; $i < count; $i++)
    {
        if($cntA >= $i) $results[] = $a[$i];
        if($cntB >= $i) $results[] = $b[$i];
    }