2015-09-06 673 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"; 
} 
?> 
相關問題