<?

//検索文字列
$s="dg";
//検索したい変数
$a="cdegh";
$b="cdeh";
$c="chi";
$d="abcdefgh"

if(/*$sの文字列が$aや$bなどのなかにあればTRUE*/){
//つまり該当する$aと$dのみマッチさせ実行したい。
}
?>
たとえば$c=”C”であれば全ての変数がTRUEするし$c="dh"であれば$a$b$dがマッチという具合にしたいわけです。

お時間のあるときにでもご教授いただけると幸いです。

回答の条件
  • 1人5回まで
  • 登録:2006/10/07 20:36:09
  • 終了:2006/10/08 02:33:46

回答(2件)

id:ratbeta No.1

ratbeta回答回数132ベストアンサー獲得回数92006/10/07 22:36:43

ポイント35pt

たとえば$c=”C”であれば全ての変数がTRUEするし$c="dh"であれば$a$b$dがマッチという具合にしたいわけです。

先に、この文章の$cはすべて$sの間違いであるものとして読み替えしましたことをお断りしておきます。

$s="dg";

// 恐らくデータは$dまでで終わらないと思うので配列にしておきます。
$data = array(
    'a' => "cdegh",
    'b' => "cdeh",
    'c' => "chi",
    'd' => "abcdefgh");

foreach ($data as $text)
{
    if (strstr($text, $s))
    {
        // マッチした時の処理。
    }
}
id:hanabusatsukasa

dgは連続していないと動作しないようです。

たとえば 'd' => "abcdgh"なら

// マッチした時の処理。を行ってくれます。

この文章の場合$a、$dが該当するような

dとgが離れていても動作するとありがたいのですが。


$Cと$Sを間違えました。失礼しました。

2006/10/08 00:28:03
id:m-nisi No.2

m-nisi回答回数159ベストアンサー獲得回数32006/10/08 01:01:01

ポイント35pt

あんまりキレイなソースではないですが、

要件は満たしております。

ratbetaさんの書いてくれているソースを改良しています。

$s="dg";

// 恐らくデータは$dまでで終わらないと思うので配列にしておきます。

$data = array(

'a' => "cdegh",

'b' => "cdeh",

'c' => "chi",

'd' => "abcdgh");

foreach ($data as $text) {

$n = 0;

for ($i = 0;$i < strlen($s);$i++) {

if (strstr($text, $s[$i])) {

$n++;

}

}

if ($n == strlen($s)) {

// マッチした時の処理。

}

}

もっといいやり方があるかもしれません。

id:hanabusatsukasa

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

動作しました。

また何かの際はよろしくお願いします。

2006/10/08 02:32:47

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません