1

很难给它起一个易于理解的描述性标题,所以我将在这里更深入地尝试。假设我有 4 个不同大小的数组,a1、a2、a3 和 a4,我想将它们组合成数组 SUM。

我希望 SUM[0] 为 a1[0],SUM[1] 为 a2[0],SUM[2] 为 a3[0],SUM[3] 为 a4[0],然后 SUM[4 ] 为 a1[1] 等等。

需要考虑的一件棘手的事情是数组的大小不同。

编辑:如果任何数组 a1,a2,a3,a4 终止,只需移动到下一个 - 抱歉没有说清楚

4

1 回答 1

4
$a1=array(1,2,3);
$a2=array(4,5,6,7,8,9);
$a3=array(10,11);
$a4=array(12,13,14,15);
$maxlen = max(count($a1), count($a2), count($a3), count($a4));
$a = array($a1, $a2, $a3, $a4);
$SUM = array();
for ($i = 0; $i < $maxlen; $i++) {
    foreach ($a as $arr) {
        if (array_key_exists($i, $arr)) {
            $SUM[] = $arr[$i];
        }
    }
}

var_dump($SUM);

输出:

数组(15) { [0]=> int(1) [1]=> int(4) [2]=> int(10) [3]=> int(12) [4]=> int(2) [5]=> int(5) [6]=> int(11) [7]=> int(13) [8]=> int(3) [9]=> int(6) [10]=> int(14) [11]=> int(7) [12]=> int(15) [13]=> int(8) [14]=> int(9) }

于 2012-05-16T08:12:01.547 回答