preg_matchについて
初級者です。
初歩的な質問で申し訳ないですが質問させていただきます。
データベースのテーブルにある日付にマッチすれば"マッチ"、マッチしなければ"マッチなし"と表示させたく思っております。
~DB内任意のフォームデータ~
0405
0406
0407
・
・
~~~~~~~~~~~~~~
そこで下記のスクリプトを作ったのですが、
この方法だとDBに登録されている日付の分だけ
"マッチ"
"マッチなし"
・
・
と表示されてしまします。
==test.php==
<?
//$keydayはリクエストのあった日付Ymd形式
//getRecList()に関しては別ファイルにてfunction済み
//["日付"]というのは上記DBの日付の項目名
$reclist = getRecList();
foreach ($reclist as $rec) {
$matchday = (date_format("Ymd",$rec["日付"]));
unset($found);
$found[0]=1;
$matchecho ="マッチ";
$unmatchecho="マッチなし";
?>
<? if (preg_match("/$keyday/",$matchday)) { ?>
<? if (!array_key_exists($matchecho,$found)) { ?>
<? echo $matchecho ?><? $found[$matchecho] = 1; ?>
<? } ?>
<? } else { ?>
<? if (!array_key_exists($unmatchecho,$found)) { ?>
<? echo $unmatchecho ?><? $found[$unmatchecho] = 1; ?>
<? } ?>
<? } ?>
<? } ?>
?>
========
やりたい事は、
DBに登録されている日付の数に左右されずマッチする日付があったら1回だけ"マッチ"と表示、
待ちしなければ1回だけ"マッチなし"と表示させたいのです。
・・なんかforeachで回している事自体が間違いな気がしますが、どうかよろしくお願いいたします。