Мне кажется, я понимаю ваш вопрос.
Здесь я разбираю тему и выкладываю вложенные темы и слова.
Возвращение levenhstein помещается в массив сначала с предметным словом, затем с «расстоянием», затем с подрешеткой со всеми словами.это то расстояние от предметного слова.
$subj = "hello world";
$subj = explode(" ", "hello world");
$str = ["hallo", "helo", "aaahelojjjj", "pizza", "Manhattan"];
$minStr = "";
$minDis = PHP_INT_MAX;
foreach ($str as $curStr) {
Foreach($subj as $word){
$dis = levenshtein($word, $curStr);
$dist[$word][$dis][] = $curStr;
}
}
// optional sort keys in subarrays
foreach($dist as &$arr){
ksort($arr);
}
unset($arr);
Var_export($dist);
выход:
(unsorted)
array (
'hello' => //word
array (
1 => // $key is levenhstein output (distance from word)
array ( // values are the words that is $key distance from word
0 => 'hallo', //both these words are one from the word 'hello'
1 => 'helo',
),
8 =>
array ( // these words are 8 from 'hello'
0 => 'aaahelojjjj',
1 => 'Manhattan',
),
5 =>
array (
0 => 'pizza',
),
),
'world' => // here is how far each word is from 'world'
array (
4 =>
array (
0 => 'hallo', // both hallo and helo is 4 characters from 'world'
1 => 'helo',
),
10 =>
array (
0 => 'aaahelojjjj',
),
5 =>
array (
0 => 'pizza',
),
9 =>
array (
0 => 'Manhattan',
),
),
)
https://3v4l.org/OVp7J