如何判斷兩組字串是否有相同的字元?
$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);