Rumah >pembangunan bahagian belakang >masalah PHP >Ketahui cara mengalih keluar aksara lain daripada rentetan PHP, hanya meninggalkan nombor

Ketahui cara mengalih keluar aksara lain daripada rentetan PHP, hanya meninggalkan nombor

青灯夜游
青灯夜游asal
2021-08-18 15:46:503180semak imbas

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 &#39;&#39;;
	}else{
		$temp = array(&#39;1&#39;, &#39;2&#39;, &#39;3&#39;, &#39;4&#39;, &#39;5&#39;, &#39;6&#39;, &#39;7&#39;, &#39;8&#39;, &#39;9&#39;, &#39;0&#39;);
		$result = &#39;&#39;;
		for ($i = 0; $i < strlen($str); $i++) {
			if (in_array($str[$i], $temp)) {
				$result .= $str[$i];
			}
		}
		echo $result;
	}
}
$str = &#39;0我是123456一段测试的字789符串0&#39;;
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:

Ketahui cara mengalih keluar aksara lain daripada rentetan PHP, hanya meninggalkan nombor

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 &#39;&#39;;
	}else{
		$result = &#39;&#39;;
		for ($i = 0; $i < strlen($str); $i++) {
			if (is_numeric($str[$i])) {
				$result .= $str[$i];
			}
		}
		echo $result;
	}
}
$str = &#39;0我是123456一段测试的字789符串0&#39;;
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:

Ketahui cara mengalih keluar aksara lain daripada rentetan PHP, hanya meninggalkan nombor

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn