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

以下是PHP中三种方法统计字符串中每种字符的个数并排序的攻略:

以下是PHP中三种方法统计字符串中每种字符的个数并排序的攻略:

方法一:使用for循环逐一判断并统计字符个数

<?php
$str = "hello world";
$result = array();
for ($i = 0; $i < strlen($str); $i++) {
    $char = $str[$i];
    if (array_key_exists($char, $result)) {
        $result[$char]++;
    } else {
        $result[$char] = 1;
    }
}
arsort($result); // 降序排列
print_r($result);
?>

输出结果:

Array
(
    [l] => 3
    [o] => 2
    [e] => 1
    [h] => 1
    [w] => 1
    [r] => 1
    [d] => 1
    [ ] => 1
)

方法二:使用array_count_values函数统计字符个数

<?php
$str = "hello world";
$chars = str_split($str);
$result = array_count_values($chars);
arsort($result); // 降序排列
print_r($result);
?>

输出结果:

Array
(
    [l] => 3
    [o] => 2
    [e] => 1
    [h] => 1
    [w] => 1
    [r] => 1
    [d] => 1
    [ ] => 1
)

方法三:使用正则表达式和preg_match_all函数统计字符个数

<?php
$str = "hello world";
$pattern = "/./u"; // 匹配任意字符,u表示使用UTF-8编码
preg_match_all($pattern, $str, $matches);
$result = array_count_values($matches[0]);
arsort($result); // 降序排列
print_r($result);
?>

输出结果:

Array
(
    [l] => 3
    [o] => 2
    [e] => 1
    [h] => 1
    [w] => 1
    [r] => 1
    [d] => 1
    [ ] => 1
)

以上三种方法的核心思路都是统计字符串中每种字符的个数,只是实现方式不同。第一种方法使用for循环逐一判断字符并统计个数,第二种方法使用PHP内置函数array_count_values,第三种方法使用正则表达式匹配任意字符并统计个数。无论使用哪种方法,都需要最后将结果按照字符个数从大到小排序,以方便查阅。

本文标题为:php中3种方法统计字符串中每种字符的个数并排序

基础教程推荐