php页面中,如:
array("a","b","30","d","我们");
$content="abcd,30abd30,我们qssdsdsaddfdaad";
需得到数组中五个元素 在$content上出现次数最高的元素(如果有多个元素出现次数一样高,一并输出)
解决代码:
$array = array("a","b","30","d","我们");
$content="aaaabcd,30abd30,我们我我们qssdsdsaddfdaad";
$t=array();
foreach($array as $value){
$t[$value]= substr_count($content, $value);
}
$p = array_keys($t, max($t));
Print_r($p);
其他代码方案:
$ar = array("a","ab","30","d","我们");
$content = "aaaabcd,30abd30,我们qssdsdsaddfdaad";
$p = join('|', $ar);
preg_match_all("/$p/" , $content, $r);
$t = array_count_values($r[0]);
$p = array_keys($t, max($t));
print_r($p);
缺点:不能匹配ab
$array = array("a","b","30","d","我们");
$content="abcd,30abd30,我们qssdsdsaddfdaad";
$count1 = 0;
$count2 = -1;
foreach($array as $value){
$count1 = substr_count($content, $value);
if($count1 > $count2){
$maxValue = $value;
$count2 = $count1;
}
}
echo $maxValue;
缺点:不能两个最高相同时不能同时输出
本文永久链接: http://www.zzxj.net/blog/fxs_2008/archive/2010/08/10/195.html
发表于 @ 2010年08月10日 |评论(loading... )|收藏