• ベストアンサー

配列要素

ファイルから読み込んだ、要素数の分からない配列があります。 前から2つずつ順に表示したいのですが、どうしたらよいでしょうか? <ファイルfruit.datの内容>―――→商品名(全角) 半角数字 りんご 210 いちご 350 みかん 390 ぶどう 500 レモン 100 柿 200 <<表示>> 商品:りんご 210円    いちご 350円    みかん 390円 商品:ぶどう 500円 商品:レモン 100円    柿 200円 open(RF,"<fruit.dat"); while(<RF>){ @data=split; ---<ここで処理>--- } close(RF); このような感じです。 配列@dataから2つずつ表示させたいんです。 良い方法がありましたら、教えてください。

noname#13767
noname#13767
  • Perl
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

open(RF,"<fruit.dat"); while(<RF>){ @data=split; $data=@data; for($i=0;$i<$data;$i+=2){ print ((($i==0) ? "商品:" : "\t" ) . "$data[$i] $data[$i+1]円\n"); } } close(RF);

noname#13767
質問者

お礼

ありがとうございました。解決しました。 配列の要素数を数える方法が参考にました。

その他の回答 (1)

noname#10667
noname#10667
回答No.2

ちょっと見つけたので・・初心者ですが。 foreach $temp(@data){ @mydata=split(/ /,$temp); $max=@mytemp; print qq(商品:); for($i=0;$i=$max;$i+=2){ print qq($mydata[$i] $mydata[$i+1]<br>); } } @dataは、ファイルから読み込んだデータです(dat ファイルの区切りをスペースにしてありますが、 区切りは別の方がいいかも)。 もっといい方法はあると思います。 だめだったらすいません。

noname#13767
質問者

お礼

ありがとうございます。 参考にさせていただきます。

関連するQ&A

  • PHP 配列の並べ替え

    phpでの配列操作に関して質問です。 配列 $fruit[]の中に [0]→{[name]りんご,[value]5} [1]→{[name]みかん,[value]6} [2]→{[name]メロン,[value]0} [3]→{[name]いちご,[value]1} [4]→{[name]ぶどう,[value]5} このようなデータが入っていたとして、 [value]の大きい順に並べ替えをしたいのですが、 どのような方法を行えば良いのでしょうか? 多分とても基礎的な問題だと思うのですが、 どうしても良い方法が思いつかないので、 どうぞ宜しくお願いします。

    • ベストアンサー
    • PHP
  • 二次元配列の基礎の基礎

    二次元配列という概念を知って興味を持ち、 ちょっと自分でやってみたのですが、どうしてもうまくいきません。(T-T) php.netやgoogleであちこち2時間以上見てまわりましたが、 あまりに初歩的過ぎるのか、難しいものばかりで撃沈しました...。 お手数ですが、どうぞよろしくお願いいたします。 <?php $fruits[] = array("orange", "みかん"); $fruits[] = array("apple", "りんご"); $fruits[] = array("grape", "ぶどう"); print_r($fruits); // 出力結果 // Array ( [0] => Array ( [0] => orange [1] => みかん ) [1] => Array ( [0] => apple [1] => りんご ) [2] => Array ( [0] => grape [1] => ぶどう ) ) // 以下でぶどうと出したいのですが、Array[1]と表示されてしまいます。 echo "$fruits[2][1]"; ?>

    • 締切済み
    • PHP
  • 果物(野菜)の好き嫌い

    この中から挙げる果物(野菜) 大好き◎ 好き〇 普通△ 嫌い× 回答下さい。 (1) 柿 (2) みかん (3) マンゴー (4) グレープフルーツ (5) ぶどう (6) 桃 (7) バナナ (8) りんご (9) なし (10) キウイフルーツ (11) すいか (12) メロン (13) いちご (14) いちじく (15) さくらんぼ

  • Excelの使い方で質問

    例えば、 A列1~10には「No.」として1~10の数字が順番に入ってます。 B列1~10には「りんご」「みかん」「いちご」「ぶどう」という文字がいくつかずつ入っています。 そういうデータで「りんご」は「No.」いくつといくつにあるか、「みかん」は「No.」いくつといくつにあるか、「いちご」は…、「ぶどう」は…、といったように集計したいと思っています。 りんご 1,5,6 みかん 9 いちご 2,3,9 ぶどう 4,7,8,10 といった感じにできれば良いのですが、どうすればよろしいのでしょうか? よろしくご教授ください。

  • エクセルで何件もあるコードと商品の件数を調べたい

    エクセルで コード 名称 009 りんご 005 みかん 009 りんご 003 バナナ 010 イチゴ 005 みかん 003 バナナ 001 ぶどう : : というようなデータが一万件近くあって、 コード 商品  件数 001 ぶどう  ○ 002 すもも  △ 003 バナナ  □ : : というように、コード順に、それぞれの商品の件数を調べてこういった表を作りたいのですがどうしたらいいでしょうか。

  • Excel 関数 照合した結果がどこにあるのか表示したいのですが

    照合したいデータがあります。 A列とB列のセルを照合の結果、B列のセルがA列のどこにあるか、C列に行番号を表示したいのですが。 どのような関数がいいのか教えてください。よろしくお願いします。   A列   B列   C列 1 リンゴ みかん  2 2 みかん いちご  4 3 バナナ レモン  6 4 いちご メロン  5 5 メロン ぶどう  × 6 レモン

  • フルーツの形のキャンディ探しています

    フルーツの形をしたキャンディで、本物の形に近いもの、似ているものを探しています。 りんご、ぶどう、オレンジ、レモン、いちご 等。 半分に切った状態のフルーツでも結構です。 どなたかご存知の方、教えてください。よろしくお願いします。

  • 【JavaScript配列のソート】2つのキーで

    JavaScriptのsort()を使用して次の並べ替えをしたいと思っています。 key1, key2, data, data 5/5 , 5/4 , リンゴ, 110 5/3 , 5/6 , バナナ, 130 5/7 , 5/2 , ミカン, 110 5/3 , 5/2 , イチゴ, 150 この配列をkey1を昇順でかつkey2も昇順とし並び変えたいのです。 key1, key2, data, data 5/3 , 5/2 , イチゴ, 150 5/3 , 5/6 , バナナ, 130 5/5 , 5/4 , リンゴ, 110 5/7 , 5/2 , ミカン, 110 str.sort(); これだとkey1のみでソートされてしまいますので、条件を複数指定したいのですがいい方法はないでしょうか? 結果はweb(テーブル等)に表示するのではなく、配列変数のままで獲得したいと思っています。 google apps のスプレッドシート内でスクリプトとして使用したいと思っています。 かなり調べたのですがどれも1項目(key1)のみの検索しかヒットしませんでした。 よろしくお願いします。

  • エクセル並び替え。思ったように並ばない

    一つのセルに下記のように入ってる場合に 商品コード順(数字)の若い方から順番に並び替えを したいのですが 10 いちご 70 みかん 500 りんご 600 ぶどう 実際には、 10 いちご 500 りんご 600 ぶどう 70 みかん というふうに、何故か数字の若い70が最後にきて しまいます。おそらく数字の後に文字が入ってるからだと 思うのですがセルを分けるにはデータが多すぎるので このまま数字の若い順に並び替え出来る方法は ありますでしょうか?

  • エクセルでこんなことできますでしょうか?

    エクセルを使ってデータ管理をしています。 エクセルで以下のようなデータがあるとします。  お店A   お店B  お店C 品目 個数 品目 個数 品目 個数 りんご 5 みかん 4 柿  4 みかん 3 りんご 2 パイナップル 2 柿   2 もも  3 いちご 3 もも  7 パイナップル 2 みかん 2 これを  お店A   お店B  お店C 品目 個数 品目 個数 品目 個数 もも 7  もも  3  りんご 5 りんご 2  みかん 3 みかん 4 みかん 2 柿  2        柿   4 のように品目を揃えて表示させたいのですが、 どのようにすればよいでしょうか?

専門家に質問してみよう