yo diría que usted podría:
- dividir la cadena en una matriz de palabras
- con
explode
- o
preg_split
- dependiendo de la complejidad que aceptará por sus palabras separadores
- us e
array_filte
r para mantener solo las líneas (es decirpalabras) que desea
- la función de devolución de llamada tendrá que devolver false para todos los no válidos Palabras
- y, a continuación, utilizar
array_count_values
en la lista resultante de las palabras
- cuales contarán cuántas veces cada palabras está presente en la matriz de palabras
EDIT: y, sólo por diversión, aquí está un ejemplo rápido:
En primer lugar, la cadena, que consigue explotó en palabras:
$str = "will see you in London tomorrow and Kent the day after tomorrow";
$words = preg_split('/\s+/', $str, -1, PREG_SPLIT_NO_EMPTY);
var_dump($words);
que te lleva :
array
0 => string 'will' (length=4)
1 => string 'see' (length=3)
2 => string 'you' (length=3)
3 => string 'in' (length=2)
4 => string 'London' (length=6)
5 => string 'tomorrow' (length=8)
6 => string 'and' (length=3)
7 => string 'Kent' (length=4)
8 => string 'the' (length=3)
9 => string 'day' (length=3)
10 => string 'after' (length=5)
11 => string 'tomorrow' (length=8)
A continuación, el filteting:
function filter_words($word) {
// a pretty simple filter ^^
if (strlen($word) >= 5) {
return true;
} else {
return false;
}
}
$words_filtered = array_filter($words, 'filter_words');
var_dump($words_filtered);
que da salida:
array
4 => string 'London' (length=6)
5 => string 'tomorrow' (length=8)
10 => string 'after' (length=5)
11 => string 'tomorrow' (length=8)
Y, por último, el conteo:
$counts = array_count_values($words_filtered);
var_dump($counts);
Y el resultado final:
array
'London' => int 1
'tomorrow' => int 2
'after' => int 1
Ahora, depende de usted para construir a partir de aquí ;-)
Principalmente, usted tiene que trabajar en:
- Una mejor función de la explosión, que se ocupa de ponctuation (o hacer frente a que durante filtrado)
- Una función de filtrado "inteligente", que se adapte a sus necesidades mejor que la mía
divertirse!
ayunar para mí. recogió de nuevo. – dnagirl
'str_word_count' también podría ser interesante: http://www.php.net/manual/en/function.str-word-count.php –
Gracias que funciona. ¿es posible obtener el resultado final sin el "int"? es decirsolo el número en sí mismo – Steven