人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

<?
//検索文字列
$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がマッチという具合にしたいわけです。

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

●質問者: hanabusatsukasa
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:DH マッチ 変数 教授 文字列
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● ratbeta
●35ポイント

たとえば$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))
 {
 // マッチした時の処理。
 }
}
◎質問者からの返答

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

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

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

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

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


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


2 ● m-nisi
●35ポイント

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

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

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)) {

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

}

}

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

◎質問者からの返答

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

動作しました。

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ