Rumah > Artikel > pembangunan bahagian belakang > 怎么判断两组字符串是否有相同的字符
如何判断两组字符串是否有相同的字符?
$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);