0
配列に最初に最も近い値を配列として並べ替えるとします。入力文字列に最も近いものをマッチングして配列をソートする方法は?
私がこれまで持っている:
$array = array("Year 6", "Year 4", "Eden camp trip", "Easter school", "Eden camp trip", "Year 6 Chester Zoo", "Year 6 Trip to Chester");
$search = strtolower("Year 6");
usort($array, function ($a, $b) use ($search) {
similar_text($search, $a, $aa);
similar_text($search, $b, $bb);
return $aa === $bb ? 0 : ($aa > $bb ? -1 : 1);
});
echo "<pre>";
print_r($array);
echo "</pre>";
結果:
Array
(
[0] => Year 6
[1] => Year 4
[2] => Year 6 Chester Zoo
[3] => Year 6 Trip to Chester
[4] => Easter school
[5] => Eden camp trip
[6] => Eden camp trip
)
期待される結果:
Array
(
[0] => Year 6
[1] => Year 6 Chester Zoo
[2] => Year 6 Trip to Chester
[3] => Year 4
[4] => Easter school
[5] => Eden camp trip
[6] => Eden camp trip
)
*最も近い一致のあなたの期待*が 'similar_text'、' levenshtein'、または 'soundex'のような組み込み関数で覆われていない限り、あなたは文字列の比較を実装する必要がありますあなた自身。 –