2 つの文字列セットに同じ文字が含まれているかどうかを判断する方法

不言
リリース: 2023-02-28 13:50:01
オリジナル
5465 人が閲覧しました

2 つの文字列セットに同じ文字が含まれているかどうかを判断するにはどうすればよいですか?
$a=2344;//メイン文字列、固定値。
//以下は可変変数です
If $b=12;//$a の文字列に 1 と 2 が含まれているかどうかを判定し、判定後の結果が false であるかどうかを判定します
If $b=22;// かどうかを判定します文字列 $a には 2 が 2 つ含まれます。判定後の結果は 2 だけです。False
if $b=234;//文字列 $a に 2、3、4 が含まれるかどうかを判定します。判定後の結果は $a になります。 all in $a, true
if $b=324;//$a の文字列に 3, 2, 4 が含まれるかどうかを判定します。判定後の結果 $a にはすべてが含まれます, true
if $b=4432;/ /$a 文字列に 4、4、3、2 が含まれるかどうかを判定します。判定後の結果は、$a にそれらがすべて含まれる、true
if $b=4444;//$a 文字列に 4 が含まれるかどうかを判定します4s, .判定後の結果 $a には 4 が 2 つだけあり、 false
if $b
if $b
if $b
... 後で必要になる
がたくさんあります判定結果は上記の通りです。
判決文の書き方は?
------解決策---------

$a = '2344';
$d = array('12', '22', '234', '324', '4432', '4444');
$a = count_chars($a, 1);
foreach($d as $b) {
  $t = count_chars($b, 1);
  $f = 0;
  if(array_keys(array_intersect_key($t, $a)) == array_keys($a)) $f = 1;
  printf("b = %s %s\n", $b, $f ? '真' : '假');
}
ログイン後にコピー
b = 12 假
b = 22 假
b = 234 真
b = 324 真
b = 4432 真
b = 4444 假
ログイン後にコピー

If $b=4444;//$a 文字列に 4 が 4 つ含まれるかどうかを判定します。判定後の結果 $a には 4 が 2 つしかなく、false
このルールは不適切と思われます

------解決策---------

$a='5415';
$a=str_split($a);
$a=array_count_values($a);
$b='514';
$b=str_split($b);
$b=array_count_values($b);
$result=true;
foreach($b as $k=>$v){
    if(!isset($a[$k]) OR $a[$k]<$v){
        $result=false;
        break;
    }
}
var_dump($result);
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート