ただの変数が配列に?

この前、文字列内検索で、どうしてもその文字列からある条件に従って文字を抽出しなくてはいけないプログラムを作らなくてはならなくなり、しかし条件はあるものの、規則性が全く掴めず、条件の指定も悩んでいたので、上司に相談してみた。

すると。。。

あっさり解決!

その内容とは、、、

例えば、$addressという変数の中に住所が入っているとする。

$address = “東京都新宿区新宿1-2-3″;

やりたいこととは、数字の手前までの住所の抽出。

コレをやろうと思ったときに、俺の中で浮かんできた方法は一つ。
正規表現を使い、ループで回し、該当する数字が最初に出た位置をとり、それ以前の文字列の抽出。

それでも良いのだが、なんというか、一言で言えば不細工。

んで、教わったのが、コレ。

for($i=0; $i<strlen($address); $i++) {
   if($address[$i] > 0 && $address[$i] <10) {
    $address_pos = $i;
    break;
   }
  }

ここで「うん?」と思いました。
なぜ、$addressが配列に?これは単に住所を入れただけの変数で、配列のデータじゃないんですが・・・

で、質問すると、

「$address[$i]のように、変数を配列のような書き方をすると、その変数に入っている文字列が一文字一文字見ることができるのだ」

という返答が来た。
要は文字列を一文字ずつに分けた配列にした、というわけだ。

なるほど!そんなことができたとは!!

まぁでもやっていることはあまり変わらないようですがねw

話を聞くと、それはC言語の使い方でよくあるみたいです。

なるほど。覚えておこう。

コメントを残す