说我有这样的二维阵列A,
my @A;
$A[0][0]="text1";
$A[0][1]="text2";
$A[0][2]="text3";
$A[1][0]="text4";
$A[1][1]="text5";
$A[1][2]="text6";
我想将它转换为另一个数组B,以便
$B[0]
将包含(["text1","text2","text3"])
和
$B[1]
将包含(["text4","text5","text6"])
。
我试过了
my @B = $A[];
但它显然不起作用。
答案 0 :(得分:1)
您对新@B
的说明是@A
已包含的内容。如果你的意思是我认为你的意思,那么你可以用简单的map
:
my @B = map @$_, @A;
答案 1 :(得分:0)
my @A;
$A[0][0]="text1";
$A[0][1]="text2";
$A[0][2]="text3";
$A[1][0]="text4";
$A[1][1]="text5";
$A[1][2]="text6";
迭代for循环并将值存储到2d数组
for($i='0'; $i<=$#A; $i++)
{
push(@{$B[$i]}, @{$A[$i]} );
}
输出:
print '$B[0][0]==>', $B[0][0], "\n";
print '$B[0][1]==>', $B[0][1], "\n";
print '$B[0][2]==>', $B[0][2], "\n";
print '$B[1][0]==>', $B[1][0], "\n";
print '$B[1][1]==>', $B[1][1], "\n";
print '$B[1][2]==>', $B[1][2], "\n";
这可能对您的问题有帮助。