取得した文字列 $moji には以下のような郵便番号と住所が入っています。

111-2222 北海道
225-3535 東京
333-4545 沖縄

現在は以下の処理です。

if (preg_match(\"/北海道/\", \$moji)) { echo \"<font color=blue >寒い</font>\";}
if (preg_match(\"/東京/\" , \$moji)) { echo \"<font color=green>首都</font>\";}
if (preg_match(\"/沖縄/\" , \$moji)) { echo \"<font color=red >熱い</font>\";}

受け取った文字列が「東京」の時は上記から緑色の文字で「首都」と表示しています。
これを郵便番号「225-3535」で受け取った時にも同じように表示したいのですが上手くいきません。
未熟者でも解るように教えて頂ければ助かります。よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

2つのペアになっている値から構成される文字列がある。


どちらかの値が与えられた時に、対になっている値を返すようにしたい。

…ということでしょうか??
であれば、こんな感じではどうでしょうか。


$const_arr = array("111-2222" => "北海道", "225-3535" => "東京", "333-4545" => "沖縄");
$arg_value = "111-2222"; # ←適当に変えてみてください。"東京"とか"333-4545"とか。

foreach ($const_arr as $key => $val) {
if ($args_value == $key) echo $val, "\n";
if ($args_value == $val) echo $key, "\n";
}
unset($key, $val);
    • good
    • 0

■複数のif文に別れてもいいのなら


 :
if (preg_match("/東京/" , $moji)) { echo "<font color=green>首都</font>";}
if (preg_match("/225-3535/" , $moji)) { echo "<font color=green>首都</font>";}
 :

■一つのif文で完結させたいのなら

if (preg_match("/東京|225-3535/" , $moji)) { echo "<font color=green>首都</font>";}


でいかがでしょうか。

この回答への補足

ご教示ありがとうございます。返信が遅くなり申し訳ございません。
そして、質問の説明を完全に間違えていました^^;

111-2222 北海道
225-3535 東京
333-4545 沖縄

上記のようなデータで「225-3535」を受けた場合に「東京」と返し、「東京」と受けた場合に「225-3535」と返すようにしたいです。再度、ご教示くださいますようお願いします。

補足日時:2011/04/12 00:10
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報