Ho un array:Trova più ripetuta stringhe sub in ordine di
$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'
);
ho bisogno di trovare la stringa sub (min 2 parole) che si ripete più volte, magari in formato di array, così il mio ritorno serie potrebbe assomigliare a questo:
$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),
);
modo che io possa vedere da questo array di array quanto spesso ogni stringa è stata ripetuta fra tutte le stringhe nella matrice.
è l'unico modo per farlo in questo modo? ..
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
}
}
}
ho provato una soluzione simile al precedente ma era troppo lento, l'elaborazione circa 1000 righe al secondo, chiunque può farlo Più veloce?
Mi ricorda di ridurre la mappa. – Layke
hai solo bisogno della sottostringa ripetuta più spesso? o hai bisogno del conteggio per ogni sottostringa possibile? queste sono due domande molto diverse. –
@BenLee: Ho davvero bisogno solo della sottostringa ripetuta più spesso, ma se possibile poi mi piacerebbe sapere quale era il prossimo. – Drahcir