Ein Vergleich von similar_text, soundex und metaphone.
<?php
/**
* Vergleich von similar_text, soundex und metaphone
*/
$words = array(
'Ball',
'Beil',
'Blei',
'Blut',
'Brei',
'Glut',
);
$rows = '';
$rowstack = array();
$tmp = array();
foreach ($words as $w){
$soundex = soundex($w);
$metaphone = metaphone($w);
$tmp[$w] = sprintf ('%s <br>SX(%s)<br>MP(%s)', $w, $soundex, $metaphone);
}
$colheads = '<tr><th></th><th>'. join('</th><th>', $tmp).'</th></tr>';
foreach ($words as $from){
foreach ($words as $to){
$dummy = similar_text($from, $to, $percent);
$content = 'st('.number_format($percent,2).')';
$content .= '<br>ls('.levenshtein ($from, $to).')';
$resultstack[$from][$to] = $content;
}
}
foreach ($resultstack as $k => $v){
$rows .= '<tr><td><strong>'.$tmp[$k].'</strong></td><td>'. join('</td><td>', $v).'</td></tr>';
}
echo <<< EOT
<table border=1 cellpadding=2 cellspacing=0>
$colheads
$rows
</table>
<ul style="list-style-type:none;">
<li>ST - similar_text</li>
<li>SX - soundex</li>
<li>mp - metaphone</li>
<li>ls - levenshtein</li>
<ul>
EOT;
?>