ari*_*rik 6 php string character count
假设我有两个字符串.
$needle = 'AGUXYZ';
$haystack = 'Agriculture ID XYZ-A';
Run Code Online (Sandbox Code Playgroud)
我想指望那些字符如何经常$needle发生$haystack.在$haystack,有字符'A'(两次),'X','Y'和'Z',所有这些都在针中,因此结果应该是5(区分大小写).
在PHP中是否有任何功能,或者我必须自己编程吗?
提前致谢!
Tha*_*hai 20
您可以计算原始字符串的长度和没有这些字符的字符串的长度.它们之间的差异是匹配的数量.
基本上,
$needle = 'AGUXYZ';
$haystack = 'Agriculture ID XYZ-A';
Run Code Online (Sandbox Code Playgroud)
这是完成工作的部分.在一行.
$count = strlen($haystack) - strlen(str_replace(str_split($needle), '', $haystack));
Run Code Online (Sandbox Code Playgroud)
说明:第一部分是不言自明的.第二部分是字符串的长度,字符串中没有字符$needle.这是通过用$needle空白字符串替换每个出现的任何字符来完成的.
为此,我们使用分割$needle成一个数组,每个项目一次为字符str_split.然后传递给str_replace.它用$search空字符串替换数组中任何项的每个出现.
回声,
echo "Count = $count\n";
Run Code Online (Sandbox Code Playgroud)
你得到:
试试这个;
function count_occurences($char_string, $haystack, $case_sensitive = true){
if($case_sensitive === false){
$char_string = strtolower($char_string);
$haystack = strtolower($haystack);
}
$characters = str_split($char_string);
$character_count = 0;
foreach($characters as $character){
$character_count = $character_count + substr_count($haystack, $character);
}
return $character_count;
}
Run Code Online (Sandbox Code Playgroud)
使用;
$needle = 'AGUXYZ';
$haystack = 'Agriculture ID XYZ-A';
print count_occurences($needle, $haystack);
Run Code Online (Sandbox Code Playgroud)
您可以将第三个参数设置false为忽略大小写.
| 归档时间: |
|
| 查看次数: |
16833 次 |
| 最近记录: |