• ベストアンサー

マッチした郵便番号のみを配列に格納したい

テキストファイルから郵便番号のみを 抽出したいと考えています。 欲しいのは該当した郵便番号のみの一覧なのですが 下記プログラムではマッチした行が 配列として格納されてしまいます。 $naiyou = file("textfile.txt"); for($i=0;$i<sizeof($naiyou);$i++){ if(preg_match("/\d{3}-\d{4}","$naiyou[$i]")){ $naiyou[$i]=$naiyou[$i]."\n"; array_push($result,$naiyou[$i]); } } マッチした数字のみを配列に格納するには どうすればいいのでしょういか?

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

preg_match()に第3の引数を指定すれば、そこにマッチした 文字列が格納されますよ。 for($i=0;$i<sizeof($naiyou);$i++){ if(preg_match("/\d{3}-\d{4}/","$naiyou[$i]",$zip_code)){ array_push($result,$zip_code[0]."\n"); } } こんな感じかな?

参考URL:
http://www.yc.musashi-tech.ac.jp/~yamada/doc/php/0411.html
12054
質問者

お礼

実際に試したところ問題なく機能いたしました。 大変勉強になりました。ありがとうございます。

その他の回答 (1)

  • f_motion
  • ベストアンサー率53% (7/13)
回答No.1

-をなくせば、よいのではないでしょうか、 $naiyou[$i]=str_replace("-","",$naiyou[$i]);

12054
質問者

補足

行が取得されるため郵便番号のみは得られませんでした。

関連するQ&A