4

文字列を想定します。

$str = 'a_b_c';

上記との可能なすべての組み合わせを一致させたいですa, b, c。例えば:

b_a_c上記と比較すると、、、c_a_b.. a_c_betcが表示されます。true$str

ノート:

$strランダムかもしれません。例:a_bk_l_m_nなど

4

2 に答える 2

7

文字列を配列に分割し、それを要素の配列と比較して一致させます。

$originalList = explode('_', 'a_b_c');
$matchList = array('a', 'b', 'c');
$diff = array_diff($matchList, $originalList);
if (!empty($diff)) {
    // At least one of the elements in $matchList is not in $originalList
}

データの取得方法に応じて、要素の重複に注意してください。

ドキュメンテーション:

于 2012-11-24T06:01:09.053 に答える
2

これをすばやく行う組み込みの方法はありません。あなたのタスクは、それらがどれほど一般的であるかによって異なる多くの異なる方法で達成できます。null 値や文字列のフォーマットのチェックについて言及していないため、次のようなものが目的に合うかもしれません。

function all_combos($str,$vals) {
  $s=explode("_",$str);
  foreach($s as $c) {
    if(!in_array($s,$vals)) return false;
  }
  return true;
}

のように電話するall_combos("b_c_a",array("a","b","c"));

于 2012-11-24T06:03:04.913 に答える