In PHP, puoi estrarre numeri da una stringa utilizzando le espressioni regolari e la funzione preg_match_all()
. Ecco un esempio di come estrarre tutti i numeri da una stringa:
$my_string = "There are 15 Oranges and 3 Bananas.";
preg_match_all('/[0-9]+/', $my_string , $matches);
print_r($matches[0]);
Questo produrrà:
Array ( [0] => 15 [1] => 3 )
Spiegazione:
/[0-9]+/
cerca una o più cifre consecutive.preg_match_all()
cerca nella stringa tutte le occorrenze dell'espressione regolare e memorizza le corrispondenze nell'array $matches
.print_r()
viene utilizzata per visualizzare il contenuto dell'array.Puoi anche utilizzare la funzione preg_replace()
per rimuovere caratteri non numerici da una stringa e mantenere solo i numeri:
$string = "There are 15 Oranges and 3 Bananas.";
$numbers = preg_replace('/D/', '', $string);
echo $numbers;
Questo produrrà:
15 3
Spiegazione:
/D/
corrisponde a qualsiasi carattere non numerico.preg_replace()
sostituisce tutti i caratteri non numerici con una stringa vuota, rimuovendoli di fatto dalla stringa.Esiste un altro modo, tuttavia non è così affidabile come le due opzioni precedenti. Possiamo usare la funzione incorporata PHP filter_var()
per estrarre int dalla stringa.
$string = "There are 15 Oranges and 3 Bananas.";
// extract numbers from string
$my_int = (int)filter_var($string ,FILTER_SANITIZE_NUMBER_INT);
echo $my_int;
Questo produrrà:
153