Heim >Backend-Entwicklung >PHP-Tutorial >怎么判断两组字符串是否有相同的字符

怎么判断两组字符串是否有相同的字符

不言
不言Original
2018-05-19 16:33:095492Durchsuche

  如何判断两组字符串是否有相同的字符?
$a=2344;//主字符串,固定值。
//下面为可变化的变量
如果$b=12;//判断$a字符串中是否包含1和2,判断后结果为假
如果$b=22;//判断$a字符串中是否包含两个2,判断后结果只有一个2,假
如果$b=234;//判断$a字符串中是否包含2,3,4.判断后结果$a中全部包含,真
如果$b=324;//判断$a字符串中是否包含3,2,4.判断后结果$a中全部包含,真
如果$b=4432;//判断$a字符串中是否包含4,4,3,2.判断后结果$a中全部包含,真
如果$b=4444;//判断$a字符串中是否包含4个4,.判断后结果$a只有二个4,假
如果$b
如果$b
如果$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 假

如果$b=4444;//判断$a字符串中是否包含4个4,.判断后结果$a只有二个4,假
这条规则似乎不妥

------解决方案--------------------

$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);
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn