7

我想找出一个字符串包含多少个唯一字符。例子:

"66615888"    contains 4 digits (6 1 5 8).
"12333333345" contains 5 digits (1 2 3 4 5).
4

5 回答 5

18
echo count( array_unique( str_split( '66615888')));

演示

文件:

  1. count()- 计算数组中元素的数量
  2. array_unique()- 查找数组中的唯一元素
  3. str_split()- 将字符串拆分为数组
于 2013-03-13T16:45:21.210 回答
10

count_chars为您提供 的地图char => frequency,您可以将其总结为array_sum

$count = array_sum(count_chars($str));

或者,您可以使用将为您提供包含所有唯一字符的字符串的3模式:count_chars

$count = strlen(count_chars($str, 3));
于 2013-03-13T16:47:48.037 回答
3

PHP 有一个计算字符的函数。

$data = "foobar";
$uniqued = count_chars($data, 3);// return string(5) "abfor"
$count = strlen($uniqued);

请在此处查看文档。

于 2013-03-13T16:49:17.063 回答
1

您可以使用以下脚本:

<?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)


count_chars()这里模式下的PHP 字符串函数3生成一个包含所有唯一字符的数组。

PHP 字符串函数strlen()产生存在的唯一字符的总数。

于 2017-07-01T21:06:46.960 回答
0

这是另一个也适用于多字节字符串的版本:

echo count(array_keys(array_flip(preg_split('//u', $str, null, PREG_SPLIT_NO_EMPTY))));
于 2018-10-17T16:09:17.113 回答