「Perl2次元配列」の版間の差分
ナビゲーションに移動
検索に移動
imported>Webmaster |
imported>Webmaster |
||
16行目: | 16行目: | ||
== 配列への代入方法 == | == 配列への代入方法 == | ||
ひとつ、ひとつブラケット <code>[</code>で括ってやって指定する方法<br /> | ひとつ、ひとつブラケット <code>[</code>で括ってやって指定する方法<br /> | ||
− | |||
<syntaxhighlight lang="perl"> | <syntaxhighlight lang="perl"> | ||
my @jdata; | my @jdata; | ||
32行目: | 31行目: | ||
foreach my $var1 (@jdata) { | foreach my $var1 (@jdata) { | ||
+ | foreach my $var2 (@{$var1}) { | ||
+ | print "$var2 "; | ||
+ | } | ||
+ | print "\n"; | ||
+ | } | ||
+ | </syntaxhighlight><br /> | ||
+ | <br /> | ||
+ | <code>Push</code>を使ってまとめて指定する方法もあります<br /> | ||
+ | ここで注意しないといけないのは配列をリファレンスにしないといけないことです<br /> | ||
+ | <code>push(@spec, \@chars);</code>の<code>\@chars</code>で\がついているところが重要です<br /> | ||
+ | <syntaxhighlight lang="perl"> | ||
+ | my @spec = (); | ||
+ | my @chars = qw/あ い う え お/; | ||
+ | push(@spec, \@chars); | ||
+ | |||
+ | my @chars = qw/か き こ け こ/; | ||
+ | push(@spec, \@chars); | ||
+ | foreach my $var1 (@jdata) { | ||
+ | foreach my $var2 (@{$var1}) { | ||
+ | print "$var2 "; | ||
+ | } | ||
+ | print "\n"; | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | == 2次元配列の表示 == | ||
+ | 配列の表示方法も2種類あるので意味を理解して使いましょう | ||
+ | <syntaxhighlight lang="perl"> | ||
+ | foreach my $var1 (@spec){ | ||
+ | foreach my $var2 (@$var1){ | ||
+ | print "$var2 "; | ||
+ | } | ||
+ | print "\n"; | ||
+ | } | ||
+ | |||
+ | foreach my $var1 (@spec) { | ||
foreach my $var2 (@{$var1}) { | foreach my $var2 (@{$var1}) { | ||
print "$var2 "; | print "$var2 "; |
2017年10月15日 (日) 08:48時点における版
もう少し2次元配列について詳しく記録しておく
2次元配列のイメージはこんな感じだとおもう
\ | 0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|---|
0 | あ | い | う | え | お |
1 | か | き | く | け | こ |
2 | さ | し | す | せ | そ |
3 | た | ち | つ | て | と |
単純な50音表、こんな形が2次元配列というイメージがあると思う
配列への代入方法
ひとつ、ひとつブラケット [
で括ってやって指定する方法
my @jdata;
$jdata[0][0] = "あ";
$jdata[0][1] = "い";
$jdata[0][2] = "う";
$jdata[0][3] = "え";
$jdata[0][4] = "お";
$jdata[1][0] = "か";
$jdata[1][1] = "き";
$jdata[1][2] = "く";
$jdata[1][3] = "け";
$jdata[1][4] = "こ";
foreach my $var1 (@jdata) {
foreach my $var2 (@{$var1}) {
print "$var2 ";
}
print "\n";
}
Push
を使ってまとめて指定する方法もあります
ここで注意しないといけないのは配列をリファレンスにしないといけないことです
push(@spec, \@chars);
の\@chars
で\がついているところが重要です
my @spec = ();
my @chars = qw/あ い う え お/;
push(@spec, \@chars);
my @chars = qw/か き こ け こ/;
push(@spec, \@chars);
foreach my $var1 (@jdata) {
foreach my $var2 (@{$var1}) {
print "$var2 ";
}
print "\n";
}
2次元配列の表示
配列の表示方法も2種類あるので意味を理解して使いましょう
foreach my $var1 (@spec){
foreach my $var2 (@$var1){
print "$var2 ";
}
print "\n";
}
foreach my $var1 (@spec) {
foreach my $var2 (@{$var1}) {
print "$var2 ";
}
print "\n";
}