文字列の metaphone キーを計算する

# metaphone

(PHP 4, PHP 5, PHP 7, PHP 8)

metaphone — 文字列の metaphone キーを計算する

### 説明

function metaphone(string `$string`, int `$max_phonemes` = 0): string

`string` の metaphone キーを計算します。

soundex() と同様に metaphone は、 発音が似た単語について同じキーを作成します。metaphone は、 英語の発音の基本的ルールを知っているので、 soundex() よりも正確です。 metaphone が生成するキーは可変長です。

metaphone は、Lawrence Philips <lphilips at verity dot com> により 開発されました。["Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995] で解説されています。

### パラメータ

`string`

  入力文字列。

`max_phonemes`

  このパラメータは、返される metaphone キーの長さを最大 `max_phonemes` 文字 までに制限します。 しかし、phonemes は完全に書き換えられるので、 結果の文字列の長さは、`max_phonemes` よりも少し長くなります。 デフォルト値の `0` は、無制限であることを意味します。

### 戻り値

metaphone キーを文字列で返します。

### 変更履歴

バージョン | 説明
--- | ---
8.0.0 | この関数は、失敗時に `false` を返さなくなりました。

### 例

例1 metaphone() の基本的な例

    <?php
    var_dump(metaphone('programming'));
    var_dump(metaphone('programmer'));
    ?>

上の例の出力は以下となります。

    string(7) "PRKRMNK"
    string(6) "PRKRMR"

例2 `phonemes` パラメータの使用例

    <?php
    var_dump(metaphone('programming', 5));
    var_dump(metaphone('programmer', 5));
    ?>

上の例の出力は以下となります。

    string(5) "PRKRM"
    string(5) "PRKRM"

例3 `phonemes` 引数を使う

この例では、 metaphone() 関数は5文字の文字列を生成するように指定されていますが、 最後の音素を分割する必要がある (`'x'` は `'KS'` に書き換えられるとします), ため、返される文字列は6文字になります。

    <?php
    var_dump(metaphone('Asterix', 5));
    ?>

上の例の出力は以下となります。

    string(6) "ASTRKS"

### 参考

- levenshtein() - 二つの文字列のレーベンシュタイン距離を計算する
- similar_text() - 二つの文字列の間の類似性を計算する
- soundex() - 文字列の soundex キーを計算する

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open