繁体   English   中英

PHP:查找字符串中不同字母的数量

[英]PHP: Find number of different letters in a string

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

"66615888"    contains 4 digits (6 1 5 8).
"12333333345" contains 5 digits (1 2 3 4 5).
echo count( array_unique( str_split( '66615888')));

演示版

文件:

  1. count() -计算数组中元素的数量
  2. array_unique() -查找数组中的唯一元素
  3. str_split() -将字符串拆分为数组

count_chars为您提供了char => frequency的映射,您可以使用array_sum

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

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

$count = strlen(count_chars($str, 3));

PHP具有计数字符的功能。

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

请在此处查看文档。

您可以使用以下脚本:

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


在这里,模式3 PHP字符串函数count_chars()生成具有所有唯一字符的数组。

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

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

echo count(array_keys(array_flip(preg_split('//u', $str, null, PREG_SPLIT_NO_EMPTY))));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM