<?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);

  

php字符串统计次数的各种方法(转)的更多相关文章

  1. 用Regex类计算一个字符串出现次数是最好方法【转载】

    我的一个朋友问我,怎么在c#或vb.net中,计算一个字符串中查找另一个字符串中出现的次数,他说在网上打了好多方法,我看了一下,有的是用replace的方法去实现,这种方法不是太好,占资源太大了.其实 ...

  2. JavaScript 字符串函数 之查找字符方法(一)

    1.JavaScript查找字符方法   首先看一张 有关字符串函数的查找字符的方法图 接下里补充里面的方法说明 2.charAt()     charAt() 方法返回字符串中指定位置的字符 语法 ...

  3. Java 一个字符串在另外一个字符串出现次数

    统计一个字符串在另外一个字符串出现次数 代码如下: package me.chunsheng.javatest; import java.util.regex.Matcher; import java ...

  4. 给出一个string字符串,统计里面出现的字符个数

    给出一个string字符串,统计里面出现的字符个数 解决方案: 使用algorithm里面的count函数,使用方法是count(begin,end,'c'),其中begin指的是起始地址,end指的 ...

  5. golang中获取字符串长度的几种方法

    一.获取字符串长度的几种方法   - 使用 bytes.Count() 统计   - 使用 strings.Count() 统计   - 将字符串转换为 []rune 后调用 len 函数进行统计   ...

  6. sh_15_字符串统计操作

    sh_15_字符串统计操作 hello_str = "hello hello" # 1. 统计字符串长度 print(len(hello_str)) # 2. 统计某一个小(子)字 ...

  7. HDOJ2017字符串统计

    字符串统计 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  8. golang 字符串统计

    golang内建只认utf8 如果传递的字符串里含有汉字什么的,最好使用 utf8.RuneCountInString() 统计 字符串统计几种方法: - 使用 bytes.Count() 统计- 使 ...

  9. linux shell脚本编程笔记(四): 获取字符串长度的七种方法

    获取字符串长度的七种方法 1. \${#str} 2.awk的length 备注:1) 最好用{}来放置变量2) 也可以用length($0)来统计文件中每行的长度 3.awk的NF 备注: -F为分 ...

随机推荐

  1. EXEC sp_executesql with multiple parameters

    传递多个参数 https://stackoverflow.com/questions/28481189/exec-sp-executesql-with-multiple-parameters http ...

  2. (转载)Unity 关于动态监听时,点击Button,返回其在数组中的下标

    其实是绕了一圈,把数组里的元素放进数组列表里再读取它的下标 using System.Collections; using System.Collections.Generic; using Unit ...

  3. 【NOI 2015】品酒大会

    Problem Description 一年一度的"幻影阁夏日品酒大会"隆重开幕了.大会包含品尝和趣味挑战两个环节,分别向优胜者颁发"首席品酒家"和" ...

  4. C语言获取Linux系统精确时间

    gettimeofday()函数的使用方法 1.函数原型 #include <sys/time.h> int gettimeofday(struct timeval *tv, struct ...

  5. 在1-10中选择一个数,输出x+xx+xxx+xxx....x之和,如:数字为2,则2+22=24

    代码: package bao; import java.util.Random; public class a { public static void main(String[] args) { ...

  6. English trip EM2-LP-4B At School Teacher:Russell

    课上内容(Lesson) Where is Loki a student?  Loki is in Meten, BaobaoStreet, Chengdu. What is he studying? ...

  7. linux存储管理之交换分区

    交换分区管理 Swap ====================================================================================作用: ...

  8. script利用src引用外部js文件,如果内部嵌套了js代码呢

    <script src='test.js' defer async> var a = 5; </script> 这个时候 var a = 5;会被忽略.

  9. photoshop打开图片显示的是索引,无法编辑解决

    问题如图: 解决方法: 这是因为图像模式是索引颜色,具体为啥图片打开是索引模式我也不是很清楚(捂脸),改成RGB颜色即可修改了 图像=>模式=>RGB颜色 如图:

  10. jar包安装到本地仓库

    mvn install:install-file -Dfile=hm_test.jar -DgroupId=com.TEST -DartifactId=hm_test -Dversion=1.0 -D ...