- ベストアンサー
$aと$bが一文字でも一致したらtrueに。
$a="ab"; $b="abcdfg" if($aと$bが一文字でも一致したら){ TRUEしこのの文章を実行する。 } この二つの変数は2文字一致しているのでIFの中を動作させたいのですが、どのように書けばよいでしょうか。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1補足> function isIn($a, $b){ #文字列$a の文字全てが文字列$b の構成文字になっているか調べる if($a=="") return false; $chars = array_unique(preg_split('//', $a, -1, PREG_SPLIT_NO_EMPTY)); foreach($chars as $c){ if(!strstr($b, $c)) return false; } return true; } $data = Array("cdegh","cdeh","chi","abcdefgh"); $s="dg"; foreach($data as $str) if(isIn($s, $str)) print "$str is match!\n";
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
>$aと$dのみマッチさせ実行したい。 $sの中の「d」は$bにもヒットするとおもいますが どうしたいのでしょうか? dとg両方が出現しなくてはいけないのですか? 命題があいまいだと回答者が混乱しますが・・・
補足
しつれいしました。 質問は一文字でも一致した場合を聞いてのですが 補足には応用として文字が離れていても一致した場合TRUEにしたかったのです。 //検索文字列 $s="dg" //検索したい変数 $d="abcdefgh" if(/*$sの文字列が$dのなかにあればTRUE*/){ echo "abc" }
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
$a="ab"; $b="abcdfg"; if(preg_match("/[$a]/",$b)){ print "TRUEしこのの文章を実行する。"; }
補足
ありがとうございます。とても参考になりました。 また、下記のような場合はどうなるでしょうか。 //検索文字列 $s="dg" //検索したい変数 $a="cdegh"; $b="cdeh"; $c="chi"; $d="abcdefgh" if(/*$sの文字列が$aや$bなどのなかにあればTRUE*/){ //つまり該当する$aと$dのみマッチさせ実行したい。 } お時間のあるときにでもご教授いただけると幸いです。
お礼
とても勉強になりました。 何度もお願いし申し訳ありません。 ありがとうございました。