-1

わかりました、このように説明する方が簡単です。

私は変数を持っています:

 $string

サブストリング変数もあります。

$sub1, $sub2, $sub3, $sub4

サブストリング変数のいずれかが見つかった場合は、$string をエコーする必要があります。複数の部分文字列変数が見つかった場合も含めます。

これを使用して部分文字列を見つけています:

    if (strpos($filename, $clothes) > 0 {
        echo $string
    }

私を混乱させるのは、部分文字列のすべてまたは一部がある場合に $string を返すことです。

4

2 に答える 2

2

まず、簡単にするために、これらの部分文字列変数を配列と見なします。さて、コードは次のようになります。

function doIt($string, $sub_strings){
    foreach($sub_strings as $substr){
        if(strpos($string, $substr) !== FALSE)
        {
          return $string; // at least one of the needle strings are substring of heystack, $string
        }
    }

   return ""; // no sub_strings is substring of $string.
}

この機能を使用するには、

echo doIt($string,array($str1,$str2,$str3,$str4));

オレンジピルに感謝!

于 2013-07-26T19:37:25.200 に答える
0

配列内の各値を文字列に対してテストし、見つかった場合は true を返す関数を作成するだけです。

function findOneOf(array $terms, $string){
      foreach ($terms as $term){
          if (strpos($string, $term) !== FALSE){
              return true;
          }
      }
      return false;
}

次に、次のようにテストを実行できます

if (findOneOf(array($sub1, $sub2, $sub3,$sub4), $string)){
     echo $string;
}
于 2013-07-26T19:40:00.787 に答える