$str_z="a b b c c c d d d d";
$arr_s=explode(" ",$str_z);
在 $arr_s 中,d出现4次,c出现3次,b出现2次,
我现要把出现次数最多的(前三名) d c b 输出来,
这要怎么实现呀,
$arr_s=explode(" ",$str_z);
在 $arr_s 中,d出现4次,c出现3次,b出现2次,
我现要把出现次数最多的(前三名) d c b 输出来,
这要怎么实现呀,
$str_z="a b b c c c d d d d";
$arr_s=explode(" ",$str_z);
$res = array();
//先循环计算每个元素出现的次数,得到数组
foreach($arr_s as $k=>$v)
{
if(!isset($res[$v]))
{
$res[$v]=0;
}
$res[$v]++;
}
//把数组的键名跟值相换
$res = array_flip($res);
//再对数组根据键名的值进行排序。这时出现次数最多的元素就排在最后面。便于用array_pop()取得,
ksort($res);
$i=0;
while($i<3)
{
$item = array_pop($res);
echo $item."<br>";
$i++;
}
?>
$arr_s=explode(" ",$str_z);
$res = array();
$res = array_count_values($arr_s);
ksort($res);//进行从大到小的排序
$i = 0;
foreach($res as $key => $value){
$i++;
echo $key.'<br>';
if($i==2){
break;
}
}
asort
即可