在先前的文章《PHP字串學習之將字串分成更小長度的子字串》中,我們介紹了分割字串,將字串分成更小子串的方法。這次繼續PHP字串的學習與練習,看看如何提取字串中的數字字符,有需要的可以參考參考~
本文的主題是:「提取字串中的數字字符」。例如我們給出下面一個字串
$str ='0我是123456一段测试的字789符串0';
如何去除其他字符,只回傳由字串中數字字符組成的子串「01234567890
」?以下為大家介紹兩種方法:
先看看第一種方法:
<?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); ?>
分析一下上面的程式碼:
移除兩端的空格,利用if語句確保移除空格後的字串不是空字串。 建立一個分別包含0~9數字的字元陣列
$temp
,將$str
中的每一個字元和
中的每個字元是否在
$temp陣列中存在,這樣可以判斷字元是不是數字字元)。
將取得的數字字元使用 “.=”拼接在一起,輸出拼接好的字串即可。
看看輸出結果:#OK,是文章開頭需要回傳的數字子字串「01234567890」!
,和第一種方法類似,只是將in_array()函數換成了is_numeric()函數。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><?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);
?></pre><div class="contentsignin">登入後複製</div></div>分析一下上面的程式碼:<code>
利用for迴圈遍歷字串$str
,但這次不借助數字字元數組和in_array ()函數來判斷是否為數字字元了,直接使用is_numeric()函數。 is_numeric()函數可以偵測變數是否為數字或數字字串。
在迴圈體中使用is_numeric($str[$i])判斷該$str[$i]
字元是不是數字字元;如果是則取出來,使用“.=”拼接成數字子字串。 看看輸出結果:################好了就說到這裡了,有其他想知道的,可以點擊這個哦。 → →###php影片教學######### 最後給大家推薦閱讀一個經典課程《###PHP字串處理(玉女心經版)###》,免費的~快來學習啊! ###以上是PHP字串學習之怎麼去除其他字符,只留下數字的詳細內容。更多資訊請關注PHP中文網其他相關文章!