• ベストアンサー

配列変数へまとめるには?

$a = ',,,,,,1,1'; $b = ',,,1,,1,,'; $c = ',1,,1,,,,'; push(@A,split(/\,/,$a)); push(@B,split(/\,/,$b)); push(@C,split(/\,/,$c)); @Dにまとめるにはどうしたらよいでしょうか? @Dの中身→ ,1,1,1,,1,1,1 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

なにかの課題? まあいいか。 Perlの達人ではないのでスマートではありませんが、 要素の数が決まっているのなら、これでも出来ます。 for ($i = 0; $i < 8; $i++) { $D[$i] = ($A[$i] || $B[$i] || $C[$i]); } 答えは、",1,,1,,1,1,1"。@Dの中身違ってますよ !

kapran
質問者

お礼

ありがとう御座います。 なんか、出来そうで出来ませんでした。(^^;

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 配列変数のクリアについて

    $line[0]='a,1,2,3,4,5'; $line[1]='b,1,2,3,4,5'; $line[2]='c,1,2,3,4,5'; $line[3]='d,1,2,3,4,5'; $line[4]='e,1,2,3,4,5'; $line[5]='f,1,2,3,4,5'; for($i=0;$i<=$#line;$i++){ ($a,$b,$c,$d,$e,$f)=split(/\,/,$line[$i]); push(@str,$a); } for($i=0;$i<=$#str;$i++){ print '$str',"[$i] = ","$str[$i]\n"; } print "\n\n"; @str=""; for($i=0;$i<=$#line;$i++){ ($a,$b,$c,$d,$e,$f)=split(/\,/,$line[$i]); push(@str,$a); } for($i=0;$i<=$#str;$i++){ print '$str',"[$i] = ","$str[$i]\n"; } __END__ 実行結果 $str[0] = a $str[1] = b $str[2] = c $str[3] = d $str[4] = e $str[5] = f $str[0] = $str[1] = a $str[2] = b $str[3] = c $str[4] = d $str[5] = e $str[6] = f 二回目は$str[0]から入らないのですね。 @str=""; にその様にさせる意味があったのでしょうか? pushなので、変数(@str)をクリアして使おうとしたら、こんな事になっていました。

    • ベストアンサー
    • Perl
  • JavaScriptで配列に配列を追加できません

    var array = [ ]; var add1 = ["a", "b"]; var add2 = ["c", "d"]; array.push(add1); array.push(add2); ----------------------------------------- 期待しているarrayの中身 [["a", "b"], ["c", "d"]] ----------------------------------------- 実際の実行結果 ["a", "b", "c", "d"] ----------------------------------------- どうすれば良いのでしょうか?

  • 配列のソートについて質問です。

    配列のソートについて質問です。 2つのキーで配列の中身をソートしたいのですが、スマートな書き方があれば教えてください。 そもそも間違っている、などのご指摘でもありがたいです。 @t1 = map {(split /,/)[1]} @data; @t2 = map {(split /,/)[2]} @data; @data = @data[sort {$t1[$a] <=> $t1[$b] or $t2[$a] <=> $t2[$b]} 0 .. $#t1]; @dataの内容 A,1,2 B,1,3 C,2,1 D,3,2 E,3,1 F,1,1 出力結果 F,1,1 A,1,2 B,1,3 C,2,1 E,3,1 D,3,2 よろしくお願いします。

    • ベストアンサー
    • Perl
  • perlでの配列について

    配列の配列について教えてください。 以下のようなテキストから値を取得し、A,B,Cの値をそれぞれ別の配列に格納し、A,B,Cの平均値を出す処理を行っているとします。 ----- A=100 B=200 C=300 A=110 B=210 : ----- 現状、以下のような状態です。 @arrayA=(); @arrayB=(); @arrayC=(); : (テキストを読み込み) : ・読み込んだ行がA=XXXならarrayAにpush push(@arrayA,"100"); ・読み込んだっ行がB=XXXならarrayBにpush push(@arrayB,"100"); : (各配列の要素の平均値を出す) このやり方だと、グループが増えるとそのまま行数が増えて冗長なので、グループごとの配列を1つの配列にまとめたいのです。 Webで初期値を入れた形で説明しているのはよくみるのですが、今回のように空の配列に値をいれていくにはどうすればよいのでしょうか?(そもそも宣言の仕方もわかりません)。 また、配列の配列?とした場合、以下のような処理はできるのでしょうか? (1)配列の1つ目の要素(の配列)にpushする(現状でのarrayAにpushに該当) push(@arrayAll[0],"test");

  • CGIの変数に配列を代入する方法

    下記のような記述をG1~G799まで書かなくてもいい方法をお教えください。 よろしくお願いいたします。 ($a,$b,$c,$G1,$G2,$G3,・・・$G799,) = split(/<>/,$P);

    • 締切済み
    • CGI
  • 配列と繰り返し

    PHPを勉強し始めて間もない者です。 例えばなのですが、 (A,B,C,D) (A,B,C,D) (A,B,C,D) という語群があって、この中から3つを選択して、 A,A,A A,A,B A,A,C A,A,D A,B,A A,B,B A,B,C …… という文字列を作りたいのですが、どのようにすれば良いのかわからなかったので質問させていただきました。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • Javascriptの配列の便利な処理

    Javascriptの配列で以下のような処理は自分で作らないといけないのでしょうか? var csv = 'A,B,C,D'; var ary new Array(); ary = csv.split(','); 要素の有無 true/false ary.exists('A') 結果 true 要素の削除 ary.delete('A') 結果 ary = ['B', 'C', 'D'];

  • 配列について

     現在CGIの勉強として簡単なゲストブックを作ってるんですけど、わからないことがあるので質問します。 -------log.datの内容------- Aさん<>GOOです。<> Bさん<>まあいいんじゃない?<> Cさん<>ファイトー<> -------メインのCGI(表示部分)------- open(D,"log.dat"); $data=<D>; close(D); @log=split(/<>/,$data); ($name,$mes)=@log; print "$name : $mes";  こんな感じで内容を書き込むことはできましたが、 いざメッセージを表示しようとしたときに、僕が作った方法ではAさんの内容しか表示されません。  どうすれば全員の内容を表示することができるのでしょうか? 変な質問をしてるかもしれませんが、 よろしくお願いします。

    • ベストアンサー
    • Perl
  • 参照変数の親配列を取得

    データの多次元配列があって、値に応じて動的に関数を選択し 中身の値を引数で渡すみたいな感じの処理をしています ほとんどの処理は中身の値だけあれば事足りるのですが 稀にキー値を使いたい処理がでてきます 本当に稀なので引数にキー値も渡すようにするのは 無駄が多くなるように思うので避けたく できれば参照変数で渡される値から 親配列でのキー値を取得したいと思っています $arr2A=array('a'=>array('fnc'=>'A','あ','い','う'),'b'=>array('fnc'=>'B','か','き','く'),'c'=>array('fnc'=>'C','さ','し','す')); $arr2B=array('a'=>array('fnc'=>'A','あ','い','う'),'b'=>array('fnc'=>'B','か','き','く'),'c'=>array('fnc'=>'C','さ','し','す')); $arr2C=array('a'=>array('fnc'=>'A','あ','い','う'),'b'=>array('fnc'=>'B','か','き','く'),'c'=>array('fnc'=>'C','さ','し','す')); foreach($arr2A as $key=>$val){ $fncs[$val['fnc']]($val); } foreach($arr2B as $key=>$val){ $fncs[$val['fnc']]($val); } foreach($arr2C as $key=>$val){ $fncs[$val['fnc']]($val); } $fncs=array( A=>function(&$arr){ }, B=>function(&$arr){ }, C=>function(&$arr){ //ここで稀にキー値も使いたい }); 実際のコードはかなり長いので載せられませんが 要約すると上記のような感じの処理です まずどのデータ配列の集合から渡されたのかが明確ではありませんので indexOfなどでキー値を得るのというのが難しいです 現在は、その処理が必要なデータ行について処理前に 中身にキー値をあらかじめ入れてしまう というように対応しているので、一応解決はしているのですが もし参照変数から親配列を得る方法が あればと思い質問させていただきました ”そんなものはない”という回答も あきらめつくのでお願いします

    • ベストアンサー
    • PHP
  • 配列について

    var myarray=new Array(); myarray[0]="a"; myarray[1]="b"; myarray[2]="c"; myarray[3]="b"; myarray[4]="a"; myarray[5]="d"; のような配列があります。ここから重複しないようにa,b,c,dだけを抜き出すのにはどのようにJavascriptで書いたらよいのでしょうか。 よろしくお願いします。