2012-10-04 35 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