我想查找字符串包含多少个唯一字符。实例:PHP:查找字符串中不同字母的数量
"66615888" contains 4 digits (6 1 5 8).
"12333333345" contains 5 digits (1 2 3 4 5).
我想查找字符串包含多少个唯一字符。实例:PHP:查找字符串中不同字母的数量
"66615888" contains 4 digits (6 1 5 8).
"12333333345" contains 5 digits (1 2 3 4 5).
echo count(array_unique(str_split('66615888')));
文档:
count()
- 计数以阵列array_unique()
元件的数量 - 查找阵列的独特元素str_split()
- Sp点燃一个字符串到一个数组它的工作原理,谢谢〜 – jlee 2013-03-13 16:49:42
+1但是,让我问:你知道哪个性能更好:你的解决方案还是merlin2011的/ NikiC的? – insertusernamehere 2013-03-13 16:54:36
@insertusername我不知道。哪一个更好? – jlee 2013-03-13 17:01:08
count_chars
给你地图的char => frequency
一个,您可以用array_sum
总结:
$count = array_sum(count_chars($str));
或者您可以使用3
模式count_chars
,这将给你一个包含所有唯一字符的字符串:
$count = strlen(count_chars($str, 3));
PHP具有计算字符的功能。
$data = "foobar";
$uniqued = count_chars($data, 3);
$count = strlen($uniqued);
请参阅文档here。
您可以使用下面的脚本:
<?php
$str1='66615888';
$str2='12333333345';
echo 'The number of unique characters in "'.$str1.'" is: '.strlen(count_chars($str1,3)).' ('.count_chars($str1,3).')'.'<br><br>';
echo 'The number of unique characters in "'.$str2.'" is: '.strlen(count_chars($str2,3)).' ('.count_chars($str2,3).')'.'<br><br>';
?>
输出:
的独特字符 “66615888” 的号码是:4(1568)
的独特的字符数“ 12333333345“是:5(12345)
这里PHP字符串函数count_chars()
在模式3
产生一个具有所有唯一字符的数组。
PHP字符串函数strlen()
产生了唯一字符的总数。
你关心数字(字符)返回的顺序吗? – Floris 2013-03-13 16:47:39
询问问题是询问“多少”唯一字符,而不是它们的列表。 – merlin2011 2013-03-13 17:01:55
@弗洛里斯我没有,只需要“多少”。 – jlee 2013-03-13 17:06:42