假设我有2个如下所述的数组
@a1 = ("Vinay", Raj, harry);
@b1 = ("dude","rock");
Run Code Online (Sandbox Code Playgroud)
合并后我希望得到这样的结果
[
Vinay
dude
Vinay
rock
Raj
dude
Raj
rock
harry
dude
harry
rock
]
Run Code Online (Sandbox Code Playgroud)
基本上我想将array1的每个索引值合并到array2的所有索引值.
添加到上面的问题我有另一个问题.
对于上面的相同问题,如何在特定数组索引处合并2个数组.例如,我有160个元素的2个数组,现在我想在集合中的每个第5个元素合并数组,这可能吗?
jmd*_*din 53
只需创建一个新数组:
my @merged = (@a1, @b1);
Run Code Online (Sandbox Code Playgroud)
这是一个完整的例子:
my @a1 = ("foo", "bar");
my @a2 = ("baz", "spam");
my @merged = (@a1, @a2);
print $merged[3]; #=> "spam"
Run Code Online (Sandbox Code Playgroud)
编辑:我错过了订购要求.你只需要zip
他们在一起,你可以做List::MoreUtils
:
use List::MoreUtils qw(zip);
use Data::Dumper qw(Dumper);
my @a1 = ("Vinay", "Raj", "harry");
my @a2 = ("dude", "rock");
my @merged = zip(@a1, @a2);
print Dumper(\@merged);
Run Code Online (Sandbox Code Playgroud)
小智 10
这是一种方法.但是,它可能不是最好的perl语法.double for循环意味着您将把两个数组的每个组合推送到合并数组中.我试图设置它,以便结果按照您在问题中指定的顺序.
my @merged;
for my $a ( @a1 ) {
for my $b ( @b1 ) {
push( @merged, ($a, $b) );
}
}
Run Code Online (Sandbox Code Playgroud)