PDA

View Full Version : [PHP] Salvare singole parole in array di stringhe


phantom85
20-10-2009, 14:48
Ciao a tutti,

ho il seguente codice



$delim = " .,";
$string_input = $_POST['testo'];
$string= strtoupper($string_input);

$tok = strtok($string, $delim);
while ($tok !== false) {
echo "parola: ";
echo "$tok<br />";
$tok = strtok($delim);

}




Questo stampa,data una frase in input, tutte le parole che la compongono separate dallo spazio, dal punto e dalla virgola.

Come potrei modificare il codice in modo che le singole parole siano salvate all'interno di un array che io possa successivamente scorrere?

Un array bidimensionale insomma...

Grazie


Ciao!!

CwNd
20-10-2009, 19:04
$delim = " .,";
$string_input = $_POST['testo'];
$string= strtoupper($string_input);
$array = array();
$tok = strtok($string, $delim);
while ($tok !== false) {
$array[] = $tok;
$tok = strtok($delim);
}

phantom85
20-10-2009, 21:51
Grazie domani provo!

Ma in questo modo per scorrere ad esempio tra una parola e l'altra posso usare le parentesi quadre?

Cioè se ho la frase: "ciao,oggi fa molto freddo"

e quindi le parole:
ciao
oggi
fa
molto
freddo

Se scrivo $array[1] = "oggi"? :)

matteo micanti
20-10-2009, 22:15
Sì :)

C'è una via ancora più semplice, comunque:

$array = preg_split ( '#\.|,|\s#' , $_POST['testo'] );


Ciao!

phantom85
20-10-2009, 23:17
Sì :)

C'è una via ancora più semplice, comunque:

$array = preg_split ( '#\.|,|\s#' , $_POST['testo'] );


Ciao!


Ah quindi anche in quest ìo caso potrei scorrere l'array tramite l'uso di [i][j] ad esempio?

Grazie comunque, domani faccio le prove

flx2000
21-10-2009, 09:24
Perché dici [i][j]? L'array che ottieni non è a due dimensioni...

phantom85
21-10-2009, 10:15
Mmm ok...


quindi se io dico $array[0] trovo la prima parola, se dico $array[1] trovo la seconda e così via?

CwNd
21-10-2009, 10:19
Ti basta fare

print_r($array);

per vedere il contenuto dell'array :)

flx2000
21-10-2009, 10:28
Mmm ok...


quindi se io dico $array[0] trovo la prima parola, se dico $array[1] trovo la seconda e così via?

Sì esatto.