Saya terkejut tidak ada lagi filter_var di sini karena ini adalah pertanyaan lama ...
PHP memiliki metode bawaan untuk melakukan ini menggunakan filter sanitasi . Secara khusus, yang digunakan dalam situasi ini adalah FILTER_SANITIZE_NUMBER_FLOAT
dengan FILTER_FLAG_ALLOW_FRACTION | FILTER_FLAG_ALLOW_THOUSAND
bendera. Seperti itu:
$numeric_filtered = filter_var("AR3,373.31", FILTER_SANITIZE_NUMBER_FLOAT,
FILTER_FLAG_ALLOW_FRACTION | FILTER_FLAG_ALLOW_THOUSAND);
echo $numeric_filtered; // Will print "3,373.31"
Mungkin juga bermanfaat untuk dicatat bahwa karena built-in ke PHP, itu sedikit lebih cepat daripada menggunakan regex dengan pustaka PHP saat ini (meskipun secara harfiah dalam nanodetik).