我有一个返回一些内容的循环,我想过滤以便我只返回数字:
foreach ($number as $k => $content) {
echo "<td>" . $content . "</td>";
}
这将返回:
Sender Number,,
1818233483,, - aaa
1562595441,, - aaa
1870750493,, - aaa
1832677004,, - aaa
1832466803,, - aaa
我想做一些regexp之王或其他什么,所以我只过滤数字:
1818233483
1562595441
1870750493
1832677004
1832466803
我也不确定那里会有什么字符所以我需要检查除了数字之外的所有字符。
任何想法? 感谢
编辑: 我这样做了: $ test = preg_replace(“/ [^ 0-9] /”,“”,$ content);
但我明白了:
Sender Number,,
1818233483
1562595441
1870750493
..
答案 0 :(得分: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>";
}
}
答案 1 :(得分: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>";
}