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