如何从php数组中删除任何特殊字符?

时间:2014-08-28 05:46:07

标签: php arrays

如何从php数组中删除任何特殊字符?

我有数组,

          $temp = array (".com",".in",".au",".cz");

我想要结果为:

          $temp = array ("com","in","au","cz");

我通过这种方式得到了结果。

          $temp = explode(",",str_replace(".","",implode(",",$temp)));

但是有没有任何php数组函数我们可以直接从数组的所有值中删除任何字符。

我试过,发现只有空格可以删除修剪,但没有任何角色。

感谢。

4 个答案:

答案 0 :(得分:12)

使用preg_replace function。这将取代任何不是字母,数字或空格的内容。

SEE DEMO

<?php
$temp = array (".com",".in",".aus",".cz");
$temp = preg_replace("/[^a-zA-Z 0-9]+/", "", $temp );
print_r($temp);

//outputs
Array
(
    [0] =>  com
    [1] =>  in
    [2] =>  aus
    [3] =>  cz
)

?>

答案 1 :(得分:1)

我通常会发挥作用

function make_slug($data)
     {
         $data_slug = trim($data," ");
         $search = array('/','\\',':',';','!','@','#','$','%','^','*','(',')','_','+','=','|','{','}','[',']','"',"'",'<','>',',','?','~','`','&',' ','.');
         $data_slug = str_replace($search, "", $data_slug);
         return $data_slug;
     }

然后以这种方式调用它

$temp = array (".com",".in",".au",".cz");


for($i = 0; $i<count($temp); $i++)
{
    $temp[$i] = make_slug($temp[$i]);
}

print_r($temp);

$ temp的每个值都将变为没有特殊字符

请参阅Demo

答案 2 :(得分:0)

作为问题的解决方案,请执行以下代码段

    $temp = array (".com",".in",".au",".cz");
    function strip_special_chars($v)
    {
        return str_replace('.','',$v);
    }
    $result[]=array_map('strip_special_chars',$temp);

答案 3 :(得分:0)

如果您提供第二个参数(字符掩码),实际上trim()可以修剪您想要的任何字符。顾名思义,这只会删除字符串开头和结尾的字符。对于您而言,ltrim()可能更合适。

您可以将array_map()ltrim()以及第三个参数与字符掩码一起使用,如下所示:

$temp = array_map('ltrim', $temp, array_fill(0, count($temp), '.'));

第三个参数应该是与要处理的数组长度匹配的参数数组,这就是为什么我使用array_fill()创建它的原因。