2012-10-04 114 views
-1

我有一個表格,將1個單詞與多個單詞進行比較,並輸出levenshtein分數列表。我怎樣才能獲得這些成績,使他們爲了上市,最小的萊文斯坦比分1:列表Levenshtein按順序排列PHP

<?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 
+0

我知道它是與arsort但我無法弄清楚如何使用它 – user1721230

回答

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); 
} 
+0

不,不工作,有不使用L一個名單 – user1721230

+0

@ user1721230:有趣的是,它可以與我協作http://codepad.org/m6qBVEZ2。 –

+0

,它奇怪它適用於$ string5 ='carrrot';然後打破$ string5 = $ _POST [「單字」]; – user1721230