【PHP8.x】soundex関数の使い方

作成日: 更新日:

soundex関数は、与えられた文字列に対してSoundexアルゴリズムを適用し、そのSoundexキーを計算して返す関数です。Soundexアルゴリズムは、主に英語圏の単語や名前の発音が似ているものを、スペルの違いにかかわらず同じ短いコードに変換するために考案されました。これにより、「Robert」と「Rupert」のように発音が近いがスペルが異なる単語を、同じキーで検索したり、グループ化したりすることが可能になります。

この関数は、入力された文字列の最初の一文字を保持し、続くアルファベットの子音を特定の数値に置き換えていきます。母音(A, E, I, O, U, Y)やH、Wは無視され、隣接する同じ数字の子音は一つにまとめられます。最終的に、最初の一文字のアルファベットに3桁の数字が続く、合計4文字のSoundexキーが生成されます。例えば、多くのケースで「Robert」も「Rupert」も「R163」といったキーを生成します。

主な用途としては、データベースにおけるあいまい検索、重複データの検出、または音声学的な比較が必要な場面で利用されます。ただし、Soundexは英語に特化したアルゴリズムであるため、日本語やその他の言語の文字列に対しては期待通りの結果が得られない場合があります。この関数はPHP 8以降の環境で利用できます。

基本的な使い方

構文(syntax)

<?php
soundex(string $string): string;
?>

引数(parameters)

string $string

  • string $string: サウンドデックスコードに変換する文字列

戻り値(return)

string

指定された文字列のSoundexアルゴリズムによるコード表現である文字列を返します。

【PHP8.x】soundex関数の使い方 | いっしー@Webエンジニア