Rumah >pembangunan bahagian belakang >masalah PHP >Ketahui cara mengalih keluar aksara lain daripada rentetan PHP, hanya meninggalkan nombor
Dalam artikel sebelumnya "Pembelajaran Rentetan PHP: Bahagikan Rentetan kepada Subrentetan Yang Lebih Kecil Panjang", kami memperkenalkan kaedah membelah rentetan dan membahagikan rentetan kepada subrentetan yang lebih kecil. Kali ini, saya akan terus mempelajari dan mengamalkan rentetan PHP dan melihat cara mengekstrak aksara angka dalam rentetan Jika perlu, anda boleh merujuknya~
Tema artikel ini ialah: "Mengekstrak aksara angka dalam rentetan. ". Contohnya, memandangkan rentetan berikut
$str ='0我是123456一段测试的字789符串0';
, bagaimanakah kita boleh mengalih keluar aksara lain dan hanya mengembalikan subrentetan "01234567890
" yang terdiri daripada aksara angka dalam rentetan? Berikut ialah dua kaedah:
Pertama, lihat kaedah pertama:
<?php header("content-type:text/html;charset=utf-8"); function findNum($str) { $str = trim($str); if (empty($str)) { echo ''; }else{ $temp = array('1', '2', '3', '4', '5', '6', '7', '8', '9', '0'); $result = ''; for ($i = 0; $i < strlen($str); $i++) { if (in_array($str[$i], $temp)) { $result .= $str[$i]; } } echo $result; } } $str = '0我是123456一段测试的字789符串0'; findNum($str); ?>
Analisis kod di atas:
Gunakan trim($str)
untuk mengalih keluar ruang di kedua-dua hujungnya dan gunakan pernyataan if untuk memastikan rentetan selepas mengalihkan ruang bukan rentetan kosong.
Buat tatasusunan aksara yang mengandungi nombor 0~9 masing-masing$temp
Gunakan gelung for untuk melintasi rentetan $str
, bandingkan setiap aksara dalam $str
dengan elemen dalam tatasusunan $temp
dan dapatkan aksara angka. (Gunakan fungsi in_array untuk mencari sama ada setiap aksara dalam $str
wujud dalam tatasusunan $temp
, supaya anda boleh menentukan sama ada aksara itu ialah aksara angka).
Gunakan ".=
" untuk menyambung aksara angka yang diperoleh bersama-sama dan mengeluarkan rentetan yang disambung.
Lihat output:
OK, subrentetan angka "01234567890" yang perlu dikembalikan pada permulaan daripada artikel itu!
Yang berikut memperkenalkan kaedah kedua , yang serupa dengan kaedah pertama, kecuali fungsi in_array() digantikan dengan fungsi is_numeric().
<?php header("content-type:text/html;charset=utf-8"); function findNum($str) { $str = trim($str); if (empty($str)) { echo ''; }else{ $result = ''; for ($i = 0; $i < strlen($str); $i++) { if (is_numeric($str[$i])) { $result .= $str[$i]; } } echo $result; } } $str = '0我是123456一段测试的字789符串0'; findNum($str); ?>
Analisis kod di atas:
Gunakan gelung for untuk melintasi rentetan $str
, tetapi kali ini tanpa menggunakan tatasusunan aksara angka dan in_array( ) fungsi Untuk menentukan sama ada ia adalah aksara angka, gunakan fungsi is_numeric() secara langsung. Fungsi is_numeric() boleh mengesan sama ada pembolehubah ialah nombor atau rentetan angka.
Gunakan is_numeric($str[$i])
dalam badan gelung untuk menentukan sama ada aksara $str[$i]
ialah aksara angka, jika ya, keluarkannya dan gunakan ".=" untuk menyambungkannya menjadi a subrentetan angka.
Lihat output:
Itu sahaja jika anda ingin mengetahui lebih lanjut, anda boleh klik ini. → →tutorial video php
Akhir sekali, saya mengesyorkan anda membaca kursus klasik "Pemprosesan Rentetan PHP (Edisi Sutra Jantung Gadis Jade) ", ianya percuma~ datang dan belajar!
Atas ialah kandungan terperinci Ketahui cara mengalih keluar aksara lain daripada rentetan PHP, hanya meninggalkan nombor. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!