Di PHP, Anda dapat mengekstrak angka dari string menggunakan ekspresi reguler dan fungsi preg_match_all()
. Berikut ini contoh cara mengekstrak semua angka dari sebuah string:
$my_string = "There are 15 Oranges and 3 Bananas.";
preg_match_all('/[0-9]+/', $my_string , $matches);
print_r($matches[0]);
Ini akan menghasilkan:
Array ( [0] => 15 [1] => 3 )
Penjelasan:
/[0-9]+/
mencari satu atau lebih digit yang berurutan.preg_match_all()
mencari string untuk semua kemunculan ekspresi reguler dan menyimpan kecocokan dalam array $matches
.print_r()
digunakan untuk menampilkan isi array.Anda juga dapat menggunakan fungsi preg_replace()
untuk menghapus karakter non-numerik dari string dan hanya menyimpan angkanya saja:
$string = "There are 15 Oranges and 3 Bananas.";
$numbers = preg_replace('/D/', '', $string);
echo $numbers;
Ini akan menghasilkan:
15 3
Penjelasan:
/D/
cocok dengan karakter non-digit apa pun.preg_replace()
menggantikan semua karakter non-digit dengan string kosong, sehingga secara efektif menghapusnya dari string.Ada satu cara lain namun tidak dapat diandalkan seperti dua opsi di atas. Kita dapat menggunakan fungsi bawaan PHP filter_var()
untuk mengekstrak int dari string.
$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;
Ini akan menghasilkan:
153