sharapeco / kana-order
Create string that gives Japanese dictionary order from kana.
Installs: 1 158
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 1
Open Issues: 0
Requires
- php: >=5.3.3
Requires (Dev)
- phpunit/phpunit: ^9.5
README
KanaOrder は項目を辞書順に並べるためのライブラリです。
入出力文字列は UTF-8 でエンコードされているもののみ扱えます。
使用方法
KanaOrder::get() は「すずめ」「ひよどり」など読みがなとして入力された文字列を引数として鳥、 strcmp など文字コードで文字列を比較する関数を使って比較した際、 辞書順となる文字列を出力する関数です。
example/example1.php を実行してみてください。 次のように辞書順に並んだ結果が出力されると思います。
かつ【勝つ】
カツ【カツ】
しいく【飼育】
シーク【シーク】
ジーク【ジーク】
しいくいん【飼育員】
ひよう【費用】
ひょう【雹】
びょう【鋲】
ぴょう【ぴょう】
ひょうい【憑依】
びよういん【美容院】
びょういん【病院】
ひようかん【費用感】
ひょうきん【剽軽】
ひよどり【鵯】
準拠している「辞書順」
このライブラリは Wikipedia の索引の配列に基づいて実装されています。
- 読みの五十音順とする。
- 清音・濁音・半濁音は、この順に並べる。
- 促音「っ」、拗音「ゃ」「ゅ」「ょ」はそれぞれ「つ」「や」「ゆ」「よ」の後に並べる。
- 小文字「ァ」「ィ」「ゥ」「ェ」「ォ」はそれぞれ「あ」「い」「う」「え」「お」の後に並べる。
- 長音符「ー」は直前の母音を表すものとし、それぞれ仮名の後に並べる。 例: 「コーヒー」は「こおひい」と見なす。
- ひらがなとカタカナは、この順に並べる。
Collator との違い
PHP に同梱されている intl 拡張モジュールに含まれる Collator でも同様のことが実現できますが、 「辞書順」の定義が若干異なっています。
$collator = new Collator('ja_JP'); $sortKey = $collator->getSortKey('すずめ');
example/example1.php の例では次のように並び順が異なります。