正規表現のメモ

例えば、ニッサン車の名前と、車両価格が入ったデータベースを作ったとする。
車名には「ニッサン・マーチ」、「ティーダ」、「ニッサンGT-R」のような物が入っていたとする。
純粋に車名だけでアイウエオ順に並べたいときは、ニッサン・マーチの「ニッサン・」やニッサンGT-Rの「ニッサン」いう文字が邪魔になる。この邪魔な部分を削除して並び替える仕組みが最初わからなかった。
車名と価格をセットで並び替えないと意味がないので、そこで時間を費やした。

もっといい方法があるだろうけど、取り敢えず以下の方法でできたのでメモ(プログラムはPHPを使用)。

まずデータベースから車名と価格を取り出し変数に入れる。
$carname=”車名”;
$price=”価格”;

置換して「ニッサン・」と「ニッサン」の文字を取り除く
$maker=”ニッサン”;
$name = ereg_replace(“$maker(・)?”,””, $carname);

連想配列に入れる(キーで並び替えをするために、キーに車名を入れる)
$namesort[$name]=$price;

以上を繰り返し処理。

次に、キーで並び替えをする
ksort($namesort);

繰り返し処理をして表示
foreach($namesort as $key=>$value){
print $key.$value;
}

これでメーカー名を省いた純粋な車名による並び替えができた。

コメントを残す