Skip to content

Create string that gives Japanese dictionary order from kana.

Notifications You must be signed in to change notification settings

sharapeco/php-kana-order

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KanaOrder for PHP

KanaOrder は項目を辞書順に並べるためのライブラリです。

入出力文字列は UTF-8 でエンコードされているもののみ扱えます。

使用方法

KanaOrder::get() は「すずめ」「ひよどり」など読みがなとして入力された文字列を引数として鳥、 strcmp など文字コードで文字列を比較する関数を使って比較した際、 辞書順となる文字列を出力する関数です。

example/example1.php を実行してみてください。 次のように辞書順に並んだ結果が出力されると思います。

かつ【勝つ】
カツ【カツ】
しいく【飼育】
シーク【シーク】
ジーク【ジーク】
しいくいん【飼育員】
ひよう【費用】
ひょう【雹】
びょう【鋲】
ぴょう【ぴょう】
ひょうい【憑依】
びよういん【美容院】
びょういん【病院】
ひようかん【費用感】
ひょうきん【剽軽】
ひよどり【鵯】

準拠している「辞書順」

このライブラリは Wikipedia の索引の配列に基づいて実装されています。

  1. 読みの五十音順とする。
  2. 清音・濁音・半濁音は、この順に並べる。
  3. 促音「っ」、拗音「ゃ」「ゅ」「ょ」はそれぞれ「つ」「や」「ゆ」「よ」の後に並べる。
  4. 小文字「ァ」「ィ」「ゥ」「ェ」「ォ」はそれぞれ「あ」「い」「う」「え」「お」の後に並べる。
  5. 長音符「ー」は直前の母音を表すものとし、それぞれ仮名の後に並べる。 例: 「コーヒー」は「こおひい」と見なす。
  6. ひらがなとカタカナは、この順に並べる。

プロジェクト‐ノート:索引/配列順 - Wikipedia

Collator との違い

PHP に同梱されている intl 拡張モジュールに含まれる Collator でも同様のことが実現できますが、 「辞書順」の定義が若干異なっています。

$collator = new Collator('ja_JP');
$sortKey = $collator->getSortKey('すずめ');

example/example1.php の例では次のように並び順が異なります。

KanaOrder Collator
かつ カツ
カツ かつ
しいく シーク
シーク しいく
ジーク ジーク
しいくいん しいくいん
ひよう ひょう
ひょう ひよう
びょう びょう
ぴょう ぴょう
ひょうい ひょうい
びよういん びょういん
びょういん びよういん
ひようかん ひようかん
ひょうきん ひょうきん
ひよどり ひよどり

About

Create string that gives Japanese dictionary order from kana.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages