プロが教えるわが家の防犯対策術!

<?
header("Content-Type: text/html; charset=EUC");
$sample = array('test1' => "aaa 000 222 333" ,'test2' => "b 555 888 999",'test3' => "c 777 111 10");
if(in_array("222",$sample)){
echo "●";
}
if(in_array("aaa 000 222 333",$sample)){
echo "○";
}
?>

というようにPHPを記述すると「○」はでるのですが、
「●」がでません。
eregのように配列の中に一部の文字があるかどうかを確認する場合はどうしたらよいのでしょうか。

A 回答 (2件)

マッチするかどうかみたいなら、配列を適当なセパレータで


implodeしてチェックしてみては?

<?
$sample = array('test1' => "aaa 000 222 333" ,'test2' => "b 555 888 999",'test3' => "c 777 111 10");
$word="222";
$pattern="/".preg_quote($word,"/")."/";
if(preg_match($pattern,implode(chr(0),$sample))){
echo "ok";
}
?>

この回答への補足

ありがとうございます。
出来ました。
ついでで申し訳ないのですが、、、、

$sample = array('test1' => "aaa 000 222 333" ,'test2' => "b 555 888 999",'test3' => "c 777 000 10");

で「000」を含むものだけ吐き出したい場合はどのようにすればよいのでしょうか??
つまりこの場合だと
「aaa 000 222 333」と
「c 777 000 10」を表示させたいのですが、、、、。

補足日時:2009/05/11 18:07
    • good
    • 0

動作確認していませんが、in_array関数ではなく、array_search関数を使ってみてはいかがでしょうか。

    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2009/05/17 18:11

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