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 に答える