Saya sedang membangunkan tapak web e-dagang dan perlu memproses harga produk. Oleh kerana harga terlalu panjang, tiga digit terakhir harga perlu dipadamkan, tetapi bahagian integer dan titik perpuluhan mesti dikekalkan Oleh itu, fungsi perlu dilaksanakan dalam PHP untuk mencapai fungsi ini.
Dalam PHP, anda boleh menggunakan ungkapan biasa untuk memadankan nombor dalam rentetan dan menggunakan fungsi substr untuk memintas sebahagian daripada rentetan. Oleh itu, kita boleh menulis fungsi yang mula-mula menggunakan ungkapan biasa untuk memadankan bahagian berangka rentetan, kemudian memintas bahagian sebelumnya melalui fungsi substr, menambah titik perpuluhan, dan akhirnya mengembalikan rentetan yang diproses.
Berikut ialah pelaksanaan mudah:
function removeLastThreeDigits($price) { $pattern = '/\d+\.?\d*/'; preg_match($pattern, $price, $matches); if(count($matches) > 0) { $priceWithoutDecimal = substr($matches[0], 0, -3); return $priceWithoutDecimal . substr($matches[0], -3); } else { return $price; } }
Fungsi ini menerima rentetan harga sebagai parameter dan mengembalikan rentetan yang diproses. Pertama, kami mentakrifkan pembolehubah $pattern untuk memadankan bahagian angka. Ungkapan biasa ini sepadan dengan satu atau lebih nombor, yang boleh mengandungi titik perpuluhan dan sifar atau lebih digit.
Seterusnya, kami menggunakan fungsi preg_match untuk mencari nombor yang sepadan dalam rentetan harga. Fungsi ini mengembalikan tatasusunan dengan elemen pertama ialah rentetan yang dipadankan.
Jika tiada nombor yang sepadan ditemui, kami mengembalikan rentetan asal secara terus. Jika terdapat nombor yang sepadan, kami menggunakan fungsi substr untuk memintas bahagian sebelumnya, tidak termasuk tiga nombor terakhir. Kemudian, kami menggabungkan rentetan yang dipintas dengan tiga nombor terakhir dalam rentetan asal dan mengembalikan hasilnya.
Berikut ialah contoh penggunaan:
$price = "25.9900"; $newPrice = removeLastThreeDigits($price); echo $newPrice; //输出25.99 $price = "35.0000"; $newPrice = removeLastThreeDigits($price); echo $newPrice; //输出35.00 $price = "50"; $newPrice = removeLastThreeDigits($price); echo $newPrice; //输出50
Dalam contoh ini, kami menggunakan tiga rentetan harga yang berbeza untuk menguji fungsi ini. Rentetan pertama mempunyai titik perpuluhan dan empat digit, rentetan kedua mempunyai titik perpuluhan dan empat sifar, dan rentetan ketiga hanya mempunyai bahagian integer.
Selepas ujian, kami mendapati bahawa fungsi ini boleh mengalih keluar tiga digit terakhir rentetan harga dengan betul sambil mengekalkan bahagian integer dan titik perpuluhan. Fungsi ini juga boleh mengendalikan integer tanpa titik perpuluhan, hanya kembalikan rentetan asal.
Kesimpulannya, menulis fungsi menggunakan PHP untuk mengalih keluar tiga nombor terakhir daripada rentetan hanyalah masalah menggunakan ungkapan biasa dan fungsi substr. Jika anda perlu melakukan pemprosesan serupa pada rentetan lain, anda juga boleh merujuk kepada kaedah ini.
Atas ialah kandungan terperinci Bagaimana untuk memadam tiga digit terakhir dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!