php页面中,如:
array("a","b","30","d","我们");
$content="abcd,30abd30,我们qssdsdsaddfdaad";1 需得到数组中五个元素 在$content上出现次数最高的元素(如果有多个元素出现次数一样高,一并输出)
这如何实现呀
thanks
array("a","b","30","d","我们");
$content="abcd,30abd30,我们qssdsdsaddfdaad";1 需得到数组中五个元素 在$content上出现次数最高的元素(如果有多个元素出现次数一样高,一并输出)
这如何实现呀
thanks
$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;
}
}
?>
$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;
?>
$array = array("a","b","30","d","我们");
$content="abab";
应该输出 a b ,可上面的代码只输出了 a ,怎么调整呀,
$ar = array("a","b","30","d","我们");
$content = "abcd,30abd30,我们qssdsdsaddfdaad";$p = join('|', $ar);
preg_match_all("/$p/" , $content, $r); //按规则提取成员$t = array_count_values($r[0]); //统计每个成员的出现次数$p = array_keys($t, max($t)); //提取等于 max($t) 条件的项,有多少取多少print_r($p);
最好还是老实地写一下,下面在utf-8下通过
$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);原因:
http://www.zzxj.net/blog/fxs_2008/archive/2010/08/10/195.html
preg_quote -- 转义正则表达式字符这里讨论的是算法,又不是最终产品
error_reporting(7);
$pattern = array("a","b","30","d","我们");
$content="abcd,30abd30,我们qssdsdsaddfdaad";
preg_replace('/'. implode('|',array_map('preg_quote',$pattern)) . '/e', '$rs[\\0]++', $content);
arsort($rs);
print_r($rs);
while (key($rs)){
echo key($rs);
if (key($rs) != next($rs)) break;
}借鉴老大的思想,凑个热闹。。