• ベストアンサー

$aと$bが一文字でも一致したらtrueに。

$a="ab"; $b="abcdfg" if($aと$bが一文字でも一致したら){ TRUEしこのの文章を実行する。 } この二つの変数は2文字一致しているのでIFの中を動作させたいのですが、どのように書けばよいでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.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";

fukuro-cozzy
質問者

お礼

とても勉強になりました。 何度もお願いし申し訳ありません。 ありがとうございました。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>$aと$dのみマッチさせ実行したい。 $sの中の「d」は$bにもヒットするとおもいますが どうしたいのでしょうか? dとg両方が出現しなくてはいけないのですか? 命題があいまいだと回答者が混乱しますが・・・

fukuro-cozzy
質問者

補足

しつれいしました。 質問は一文字でも一致した場合を聞いてのですが 補足には応用として文字が離れていても一致した場合TRUEにしたかったのです。 //検索文字列 $s="dg" //検索したい変数 $d="abcdefgh" if(/*$sの文字列が$dのなかにあればTRUE*/){ echo "abc" }

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

$a="ab"; $b="abcdfg"; if(preg_match("/[$a]/",$b)){ print "TRUEしこのの文章を実行する。"; }

fukuro-cozzy
質問者

補足

ありがとうございます。とても参考になりました。 また、下記のような場合はどうなるでしょうか。 //検索文字列 $s="dg" //検索したい変数 $a="cdegh"; $b="cdeh"; $c="chi"; $d="abcdefgh" if(/*$sの文字列が$aや$bなどのなかにあればTRUE*/){ //つまり該当する$aと$dのみマッチさせ実行したい。 } お時間のあるときにでもご教授いただけると幸いです。

関連するQ&A