PHP怎么判断字符串中包含重复相同的数字?
比如我有这么一组字符串:
a012
a023
a034
a010
a221
a133
a000
a111
a222
怎么判断出每个字符串是否有重复的字,而且要知道重复的次数。
如上的字符串,我想要的结果是:
a012,a023,a034均无重复数字,则结果返回1
a010,a221,a133均有2个数字为相同,则结果返回2
a000,a111,a222均有3个数字相同,则结果返回3
(注,判断的时候必须符合相应的重复次数,如a000,为3个数字相同,返回的必须是3,不能是2)
怎么做到?
------解决方案--------------------$a = array(
'a012',
'a023',
'a034',
'a010',
'a221',
'a133',
'a000',
'a111',
'a222',
);
foreach($a as $v) {
$t = array_count_values(str_split($v));
$res[$v] = max($t);
}
print_r($res);
Array
(
[a012] => 1
[a023] => 1
[a034] => 1
[a010] => 2
[a221] => 2
[a133] => 2
[a000] => 3
[a111] => 3
[a222] => 3
)
------解决方案--------------------思路:
1.用str_split将字符串分割为数组
2.使用array_count_values返回每个字符出现的次数
3.max,取得重复最多的次数。
<?php
$arr = array('a012','a023','a034','a010','a221','a133','a000','a111','a222');
$arrcount = array();
foreach($arr as $val){
$tmp = array_count_values(str_split($val));
$arrcount[$val] = max($tmp);
}
print_r($arrcount);
?>