綾乃介です。 >From : matz / netlab.co.jp (Yukihiro Matsumoto) Title:「[ruby-list:17430] Re: 配列のハッシュ」 Message-ID:<E11YXKy-0002R6-00 / ev.netlab.co.jp> > まつもと ゆきひろです > > |#配列のハッシュ > |db = [{'id'=>0,'flag'=>0,'tarm'=>1-2}, > | {'id'=>1,'flag'=>1,'tarm'=>2-3}] > > はハッシュの配列と呼ぶのではないかと思います。 そうでした。db[0]['id']と書いたので、つい左から配列のハッシュ と呼んでしまいました。 > 次に > > |db.each{|v| > | v.keys{|k| > | print k['id'],"\n" > | } > |} > | > |や > | > |db[0].keys > | > |こんな感じで、試してみたのですがどうやってもループを作ること > |が出来ません。 > > ということですが、具体的になにをやろうとしてなにができなかっ > たのかをもう少し教えていただけませんか? すみません、巧く言葉で表現できないのですが、Perlで書くと、 これがやりたいのです。 #一個づつ全体を表示 for $i (0 .. $#LoH){ for $role (keys %{ $LoH[$i] }) { print "element $i $role is $LoH[$i]{$role}\n"; } } 配列の一つ目の要素のハッシュを順番に表示して、2つ目が終わった ら、配列の2つ目の要素のハッシュを表示して、それが終わったら、 また次...という具合に表示したいのです。 それで、教えてもらったeach_keyを試してみたら、巧く出来まし た。 db.each{|v| v.each_key{|k| p "#{k} = #{v[k]}" } } 確かに、keysで巧く行くはずがありませんでした。 おかげで巧く行きました。ありがとうございます。 ==================================================================== 綾乃介@IBARAKI Univ. E-mail: aya / big.or.jp URL:http://www5.big.or.jp/~aya/cgi-space/ ==================================================================== | CGIスクリプト新着情報メーリングリスト!! | | http://www5.big.or.jp/~aya/cgi-space/script-ml.html |