2015-09-06 121 views
2

我想计算字符串中所有字母出现的次数。说我有计算字符串中所有字母的出现次数PHP

$str = "cdcdcdcdeeeef"; 

我可以使用str_split和array_count_values来实现这一点。

array_count_values(str_split($str)); 

想知道是否有另一种方法可以做到这一点,而无需将字符串转换为数组?谢谢

回答

2

您不必将其转换为array()即可使用substr_count()实现相同。

substr_count - 数子的出现次数

<?php 
$str = "cdcdcdcdeeeef"; 
echo substr_count($str, 'c'); 
?> 

PHP Manual

substr_count()返回草垛字符串出现针子的次数。请注意,针是区分大小写的。

编辑:

对不起,我误解,你可以使用count_chars有字符串中的每个字符的计数值。举个例子:

<?php 
$str = "cdcdcdcdeeeef"; 

foreach (count_chars($str, 1) as $strr => $value) { 
    echo chr($strr) . " occurred a number of $value times in the string." . "<br>"; 
} 
?> 

PHP Manual: count_chars

count_chars - 返回有关字符串

+1

不是我正在寻找的答案。我想要统计字符串中每个字母的所有出现,而不仅仅是一个特定的字母。 :) –

+0

@WildWidow请检查编辑:) – user5173426

1

有返回关于字符串中使用的字符信息的PHP函数中使用的字符信息:count_chars

那么它可能不是你要找的,因为根据http://php.net/manual/en/function.count-chars.php

计数在 串每个字节值(0..255)的出现的次数,并返回它以不同的方式从相同的链接

实施例(http://php.net/manual/en/function.count-chars.php):

<?php 
$data = "Two Ts and one F."; 

foreach (count_chars($data, 1) as $i => $val) { 
    echo "There were $val instance(s) of \"" , chr($i) , "\" in the string.\n"; 
} 
?>