php中3种方法统计字符串中每种字符的个数并排序

用到的函数:
str_split:把字符串分割到数组中。类似的函数explode() 函数把字符串分割为数组。array_count_values:用于统计数组中所有值出现的次数。
arsort:对数组进行逆向排序并保持索引关系。
主要用于对那些单元顺序很重要的结合数组进行排序。$str="asdfgfdas323344##$$fdsdfg*$**$*$**$$443563536254fas";//任意长度字符串

复制代码 代码如下:

复制代码 代码如下:

<?php
//这个方法纯粹是背函数,不解释;
function countStr($str){
$str_array=str_split($str);
$str_array=array_count_values($str_array);
arsort($str_array);
return $str_array;
}
//以下是例子;
$str="asdfgfdas323344##$$fdsdfg*$**$*$**$$443563536254fas";
print_r(countStr($str));
?>
<?
//这个方法有些数据结构的思想,不过还是很好理解的:)
function countStr2($str){
$str_array=str_split($str);
$result_array=array();
foreach($str_array as $value){//判断该字符是否是新出现的种类,是的话就设置为1,不是的话就自加;
if(!$result_array[$value]){
$result_array[$value]=1;
}else{
$result_array[$value] ;
}
}
arsort($result_array);
return $result_array;
}
$str="asdfgfdas323344##$$fdsdfg*$**$*$**$$443563536254fas";
var_dump(countStr2($str))
?>
<?php
//这个方法纯粹是解法一的蹩脚版本,先找出所有字符的总类,然后在一个一个用substr_count函数统计。
function countStr3($str){
$str_array=str_split($str);
$unique=array_unique($str_array);
foreach ($unique as $v){
$result_array[$v]=substr_count($str,$v);
}
arsort($result_array);
return $result_array;
}
$str="asdfgfdas323344##$$fdsdfg*$**$*$**$$443563536254fas";
var_dump(countStr3($str));
?>

$arr=str_split($str);
$arr=array_count_values($arr);
arsort($arr);
print_r($arr);

*无论是用哪一个方法,都要用到str_split函数,所以说,这个函数很重要哦~

输出:

您可能感兴趣的文章:

复制代码 代码如下:

本文由美洲杯赌球发布于计算机教程,转载请注明出处:php中3种方法统计字符串中每种字符的个数并排序

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。