我需要将几个数组合并为一个数组.描述我正在寻找的东西的最好方法是将数组"交错"成一个数组.
例如,从数组#1中取出第一项并附加到最终数组.从数组#2获取第一项并追加到最终数组.从数组#1获取第二项并附加...等.
最终的数组看起来像这样:
array#1.element#1 array#2.element#1...
"踢球者"是各个阵列可以具有不同的长度.
是否有更好的数据结构可供使用?
合并两个数组的优雅方法是什么,这样得到的数组有两个来自第一个数组的项,后跟第二个数组中的一个项,以这种方式重复?
数组1 = A1,A2,A3,A4,A5等
数组2 = B1,B2,B3,B4,B5等
结果= A1,A2,B1,A3,A4,B2,A5,A6,B3等.
我正在尝试使用带有多个计数器的for循环来完成它,但我不知道数组长度总是根据需要长或短.我很好奇:有更好的方法吗?
这是我目前正在做的简化版本:
$x = 0, $y = 0;
for($i=0; $i<$total_num_blocks; $i++) {
if ($i % 3) { // if there's a remainder, it's not an 'every 3rd' item
$result[$i] = $projects[$x++];
} else {
$result[$i] = $posts[$y++];
}
}
Run Code Online (Sandbox Code Playgroud) 我想采用这样的数组并将其组合成1个单独的数组.
array (size=2)
0 =>
array (size=10)
0 => string '1'
1 => string 'a'
2 => string '3'
3 => string 'c'
1 =>
array (size=5)
0 => string '2'
1 => string 'b'
Run Code Online (Sandbox Code Playgroud)
但是我希望数组结果是交错的.
所以它最终看起来像
array
0 => '1'
1 => '2'
2 => 'a'
3 => 'b'
4 => '3'
5 => 'c'
Run Code Online (Sandbox Code Playgroud)
我想这样,无论传入多少个初始键(这个有2个)都没关系,它应该与1,2或5一起使用.另外,从我的例子可以看出最有可能的元素数量不会匹配.
有谁知道实现这一目标的最佳方法?