我想通过从每个数组中逐个选取元素来连接两个数组,而不是将它们组合或简单地合并
我知道如何将第二个数组添加到第一个数组,如下所示:
$array1 = (0,4,8)
$array2 = (1,5,2)
$array1 += $array2
$array1
其结果如下:
0
4
8
1
5
2
但我如何将它们复制到另一个中,得到如下输出:
0
1
4
5
8
2
注意:我不想合并它们,然后对列表进行排序。
元素需要 * 保持相同的顺序 *。如何实现这一点?
我想通过从每个数组中逐个选取元素来连接两个数组,而不是将它们组合或简单地合并
我知道如何将第二个数组添加到第一个数组,如下所示:
$array1 = (0,4,8)
$array2 = (1,5,2)
$array1 += $array2
$array1
其结果如下:
0
4
8
1
5
2
但我如何将它们复制到另一个中,得到如下输出:
0
1
4
5
8
2
注意:我不想合并它们,然后对列表进行排序。
元素需要 * 保持相同的顺序 *。如何实现这一点?
6条答案
按热度按时间cnwbcb6i1#
尽管Esperento57提供了一个完美的解决方案,但我的想法是,它也允许不同长度的数组。如果要合并大型数组,它使用
System.Collections.ArrayList
将数组中的值相加,以获得更好的性能。mspsb9vt2#
试试这样的东西
rur96b6h3#
这是另一种方法
这一个考虑到数组中不同的大小,并且交错排列它们,直到一个数组中的项目用完为止。然后添加较大数组中的剩余项目,而不添加较小数组中的“幽灵”项目。
输出
希望能有所帮助,
背风面
vshtjzan4#
如果你想让元素保持相同的顺序,只需要执行
$array3 = $array1 + $array2
,如果你想对元素进行排序,可以执行$array3 = ($array1 + $array2) | sort
。jpfvwuh45#
下面是一个稍微修改过的版本,看起来更简洁,更快速:
dw1jzc5e6#
您可以:
1.将所有数组放在括号中,括号前有美元符号$()
1.用分号分隔所有数组;
示例:
输出:
我们可以验证它是一个以所有元素为单位的数组,而不是两个数组的数组,当你使用逗号作为分隔符时就会出现这种情况。
输出: