PHPの質問です。


ある文字列に対し、文字の種類を数える方法を教えてください。
マルチバイトは1文字としてカウントします。

よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2009/01/12 21:40:00
  • 終了:2009/01/14 20:27:05

ベストアンサー

id:GoldenDawn No.2

GoldenDawn回答回数426ベストアンサー獲得回数812009/01/13 17:23:39

ポイント100pt

こんな感じでしょうか。

文字セットは UTF-8 で。

<?php
$str = "this is a ぺん" ;

$counts = count(array_unique(preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY))) ;

echo $counts ; // 結果は 8
id:webuser

ありがとうございます。

教えて頂いた通り「文字セットは UTF-8 で。」でうまくいきました。

2009/01/14 20:26:35

その他の回答(1件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332009/01/12 22:02:55

ポイント5pt

「文字の種類」というのは文字数のことですか?

たとえば、"あいうえおabcde" というのは10文字として数えるという意味ですか?

であれば、mb_strlen関数を使ってカウントできます。

$str = 'あいうえおabcde';
$len = mb_strlen($str);
echo $len . '文字';
id:webuser

今回は、文字の種類でした

2009/01/14 20:23:27
id:GoldenDawn No.2

GoldenDawn回答回数426ベストアンサー獲得回数812009/01/13 17:23:39ここでベストアンサー

ポイント100pt

こんな感じでしょうか。

文字セットは UTF-8 で。

<?php
$str = "this is a ぺん" ;

$counts = count(array_unique(preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY))) ;

echo $counts ; // 結果は 8
id:webuser

ありがとうございます。

教えて頂いた通り「文字セットは UTF-8 で。」でうまくいきました。

2009/01/14 20:26:35
  • id:pahoo
    > 文字の種類

    「ユニークな文字数」と表現していただけると分かりやすいです。
    以後、よろしくお願いします。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません