需要从数组中删除所有AlphaNumeric字符

时间:2012-02-23 07:29:09

标签: php arrays

我有一个这样的数组,我想删除所有字母字符。

 $testString = Array ([0] => 46_xsdfdsa_ddasdasd [1] => 23423_wrwerwer_ajbfdahbfkahflagassl);
    echo preg_replace("/[^0-9,.]/", "", $testString);

输出应为46,23423。

我在上面尝试过它并没有用。

非常感谢

4 个答案:

答案 0 :(得分:2)

这应该有效:

echo preg_replace("/[a-zA-Z0-9]/", "", $testString);

仅供参考,字母数字表示字母+数字字符。从你的问题标题,你似乎建议你想要全部替换它们。让我们知道这是否适合你。


如果在输出中你只想要数字,.,那就是你要做的:

echo preg_replace("/[^\d,.]/", "", $testString);

示例:

$str = '23,423_.wrwerwer_ajbfdahbfkahflagassl';
echo preg_replace("/[^\d]/", "", $str); // result: 23,423.

Working Example

答案 1 :(得分:1)

这对我有用

$testString = array(0 => '46_xsdfdsa_ddasdasd', 1 => '23423_wrwerwer_ajbfdahbfkahflagassl');
echo join(",",preg_replace("/[^0-9,.]/", "", $testString));

你工作的正则表达式 - 你只需要加入结果。

答案 2 :(得分:1)

$array = preg_replace("/[^0-9,.]/", "", $testString);
$string = implode(",", $array);

如果将数组传递给preg_replace,它将返回数组而不是字符串,因此您需要将数据加载以使其成为字符串

答案 3 :(得分:0)

$testString = Array ( "0" => "46_xsdfdsa_ddasdasd" , "1" =>   "23423_wrwerwer_ajbfdahbfkahflagassl");
$result = preg_replace("/[^0-9,.]/", "", $testString);
print_r ($result);

它的工作!!