-1

1 つの単語を複数の単語と比較し、レーベンシュタイン スコアのリストを出力するフォームがあります。これらのスコアを取得して、最小のレーベンシュタイン スコアが最初に表示されるようにするにはどうすればよいですか。

<?php
$string5 = $_POST["singleword"];
$string6 = $_POST["manywords"];
$array6 = explode(', ',$string6); 

foreach ($array6 as $derp)
{
    echo $string5, "/", $derp, ": ", levenshtein($string5, $derp), "<br>";
}

?>

出力されるリストは次のようになります。

apple/mango: 5
apple/peach: 5
apple/toothpaste: 8
apple/apes: 3

私はそれが次のようになりたい:

apple/apes: 3
apple/mango: 5
apple/peach: 5
apple/toothpaste: 8
4

1 に答える 1

2
$string5 = $_POST["singleword"];
$string6 = $_POST["manywords"];

$words = array_flip(array_map('trim', explode(',', $string6)));

foreach ($words as $key => $value)
{
    $words[$key] = levenshtein($string5, $key);
}

asort($words);

foreach ($words as $key => $value)
{
    echo sprintf('%s / %s: %s<br />', $string5, $key, $value);
}
于 2012-10-04T22:17:00.897 に答える