PHP: Find number of different letters in a string
count_chars
gives you a map of char => frequency
, which you can sum up with with array_sum
:
$count = array_sum(count_chars($str));
Alternatively you can use the 3
mode for count_chars
which will give you a string containing all unique characters:
$count = strlen(count_chars($str, 3));
echo count( array_unique( str_split( '66615888')));
Demo
Docs:
count()
- Count the number of elements in an arrayarray_unique()
- Find the unique elements in an arraystr_split()
- Split a string into an array
You can use the following script:
<?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>';
?>
Output:
The number of unique characters in "66615888" is: 4 (1568)
The number of unique characters in "12333333345" is: 5 (12345)
Here PHP string function count_chars()
in mode 3
produces an array having all the unique characters.
PHP string function strlen()
produces total number of unique characters present.
PHP has a function that counts characters.
$data = "foobar";
$uniqued = count_chars($data, 3);// return string(5) "abfor"
$count = strlen($uniqued);
Please see the documentation here.