2011-12-20 37 views
-2

可能重複:
PHP code to remove everything but numbers如何排除一切,但數字在PHP?

我有一個循環,返回一些內容,我想篩選,這樣我回來只是數字:

foreach ($number as $k => $content) { 
    echo "<td>" . $content . "</td>"; 
} 

這將退貨:

Sender Number,, 
1818233483,, - aaa 
1562595441,, - aaa 
1870750493,, - aaa 
1832677004,, - aaa 
1832466803,, - aaa 

和我想要做的正則表達式或某事的一些王,所以我將只過濾號碼:

1818233483 
1562595441 
1870750493 
1832677004 
1832466803 

也是我不知道什麼樣的人物可能會出現,所以我需要檢查的一切,但數字。

有什麼想法? 感謝

編輯: 我這樣做: $測試= preg_replace函數( 「/ [^ 0-9] /」, 「」,$內容);

,但我得到:

Sender Number,, 
1818233483 
1562595441 
1870750493 
.. 
+0

發生爆炸逗號,或者如果長度是固定的SUBSTR(),正則表達式將超過殺死 – 2011-12-20 02:03:09

+0

不這回答你的問題? http://stackoverflow.com/questions/6604455/php-code-to-remove-everything-but-numbers – VikingBadger 2011-12-20 02:05:10

回答

3

使用此:

foreach ($number as $k => $content) { 
    echo "<td>" . preg_replace('/[^0-9]/', '', $content) . "</td>"; 
} 

編輯:試試這個刪除發送號碼,,

foreach($number as $k => $content) { 
    if(is_numeric(substr($content, 0, 4)) { 
     echo "<td>" . preg_replace('/[^0-9]/', '', $content) . "</td>"; 
    } 
} 
+0

我仍然得到第一行'發件人號,,'。我需要從結果中刪除所有字符串 – Patrioticcow 2011-12-20 02:09:55

+0

您確定發件人號碼是$ number中的第一個元素,並且沒有硬編碼嗎? – 2011-12-20 02:12:43

2

嘗試更換每一個字符,這不是一個沒有任何數字,使用preg_replace

foreach ($number as $k => $content) { 
    echo "<td>" . preg_replace('/[^0-9]/', '', $content) . "</td>"; 
} 

更有效的方法可能是做字符串處理上逗號,像這樣:

foreach ($number as $k => $content) { 
    echo "<td>" . substr($content, 0, strpos($content, ',')) . "</td>"; 
} 
相關問題