$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,假
这条规则似乎不妥
$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为4444呢。
我想要的结果是,只有$b=4444;或者$b=44,或者$b=444或者$b=4的时候,才能匹配成功,才能为真,其他都不符合,
直接说我的业务需求吧,或许能明白一点,
这样子的。
七星彩你应该知道吧,
我们公司需要做一个这样的一个游戏活动。如果这期开奖号码是5667 321
这里我们只截取前面四位数,也就是5667来作为是否中奖,后面三位省略掉。
而中奖规则为四等奖项。
一等奖为四个数同现,意思是,四个数字同时出现
二等奖为三个数同现,
三等奖为二个数同现,
四等奖为一个数同现。
那么, 开奖之前,会有许多人来投注。如果a单投了一个5,则开奖号码中有一个5,则中奖了。但他中的是四等奖。
如果B投了567,则开奖号码中同时出现567,中了个2等奖。
如果C投了66,则开奖号码中,有两个6同时出现,也中了。(可能会问,为什么这样投呢,因为如果投重复码并中奖的话,奖励会翻倍。)
如果D投了5676,则开奖号码中全部匹配,中了一等奖。大概是这样的一个规则。意思是,不过你投了1个数字或者4个数字,开奖号码中,必须全部匹配才能中奖。包括重复数
$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);