У меня есть массив:
$myArray=array(
'hello my name is richard',
'hello my name is paul',
'hello my name is simon',
'hello it doesn\'t matter what my name is'
);
Мне нужно найти подстроку (минимум 2 слова), которая повторяется чаще всего, возможно, в формате массива, поэтому мой возвращаемый массив может выглядеть следующим образом:
$return=array(
array('hello my', 3),
array('hello my name', 3),
array('hello my name is', 3),
array('my name', 4),
array('my name is', 4),
array('name is', 4),
);
Таким образом, из этого массива я могу видеть, как часто каждая строка повторялась среди всех строк в массиве.
Это единственный способ сделать это? ..
function repeatedSubStrings($array){
foreach($array as $string){
$phrases=//Split each string into maximum number of sub strings
foreach($phrases as $phrase){
//Then count the $phrases that are in the strings
}
}
}
Я пробовал решение, подобное приведенному выше, но оно было слишком медленным, обрабатывая около 1000 строк в секунду, может кто-нибудь сделать это быстрее?