• php字符串统计次数的各种方法(转)


    <?php
    $str = 'AbCdEfGaBcDeFgH0234;,!-AaBbCcDdEeFfGg';
    
    $str = strtoupper($str); // 不区分大小写时,全部转换成大写或者小写
    
    // 方法一
    $res = array(); // 定义一个结果集空数组
    $arr = str_split($str); // 将字符串转换成数组
    $res = array_count_values($arr); // 统计数组中各个值出现的次数
    var_dump($res);
    
    // 方法二
    $res = array(); // 定义一个结果集空数组
    $arr = str_split($str); // 将字符串转换成数组
    foreach ($arr as $key => $val) { // 便利字符串数组
    if (!isset($res[$val])) { // 如果结果集不存在以某个字符为 key 的键
    $res[$val] = 1; // 将其数量设置为 1
    } else {
    $res[$val] += 1; // 否则在其基础上数量加 1
    }
    }
    var_dump($res);
    
    // 方法三
    $res = array(); // 定义一个结果集空数组
    $arr = str_split($str); // 将字符串转换成数组
    $unique = array_unique($arr); // 数组字符去重
    foreach ($unique as $key => $val) {
    $res[$val] = substr_count($str, $val); // 统计某字符在字符串中出现的次数
    }
    var_dump($res);
    
    // 方法四 ASCII 思路
    $res = array(); // 定义一个结果集空数组
    $arr = str_split($str); // 将字符串转换成数组
    foreach ($arr as $key => $val) {
    $ascii = ord($val);
    if (!isset($res[$ascii])) {
    $res[$ascii] = 1;
    } else {
    $res[$ascii] += 1;
    }
    }
    
    foreach ($res as $key => $val) {
    $res[chr($key)] = $val;
    unset($res[$key]);
    }
    
    var_dump($res);
    
    /**
    * 在 PHP 中字符串本身是有下标的 举个例子:
    * $str = 'AaBbCcDdEeFfGg';
    * $str[0] 对应的是字符 A $str[2] 对应的是字符 B
    * 所以根据这个特性,以上方法二和方法四可以延伸出另外两种方法
    */
    
    // 方法五
    $res = array(); // 定义一个结果集空数组
    $strLen = strlen($str); // 计算字符串的长度
    for ($i = 0; $i < $strLen; $i++) { // 便利字符串数组
    if (!isset($res[$i])) { // 如果结果集不存在以某个字符为 key 的键
    $res[$i] = 1; // 将其数量设置为 1
    } else {
    $res[$i] += 1; // 否则在其基础上数量加 1
    }
    }
    var_dump($res);
    
    // 方法六
    $res = array(); // 定义一个结果集空数组
    $strLen = strlen($str); // 计算字符串的长度
    for ($i = 0; $i < $strLen; $i++) { // for 循环每一个字符
    $ascii = ord($str[$i]); // 将字符转换成 ASCII 码
    if (!isset($res[$ascii])) {
    $res[$ascii] = 1;
    } else {
    $res[$ascii] += 1;
    }
    }
    
    foreach ($res as $key => $val) { // 遍历结果集
    $res[chr($key)] = $val; // 将 ASCII 码再次转换成普通字符
    unset($res[$key]); // 删除原有 ASCII 码的 key
    }
    var_dump($res);
    
    

      

  • 相关阅读:
    ASP.NET MVC 页面重定向
    Linux用户管理
    linux开机、重启和用户注销
    vi和vim
    Mac 与 Linux服务器上传下载
    linux 文件体系
    linux 常用命令及异常处理
    单独使用ueditor的图片上传功能,同时获得上传图片地址和缩略图
    mybatis oracle 插入自增记录 获取主键值 写回map参数
    MyBatis SpringMVC映射配置注意
  • 原文地址:https://www.cnblogs.com/shixiuxian/p/10421753.html
Copyright © 2020-2023  润新知