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

如何从php数组中删除任何特殊字符?,php,arrays,Php,Arrays,如何从php数组中删除任何特殊字符 我有这样一个数组: $temp = array (".com",".in",".au",".cz"); 我希望结果如下: $temp = array ("com","in","au","cz"); 我是这样得到结果的: $temp = explode(",",str_replace(".","",implode(",",$temp))); 但是否有任何php数组函数可以直接从数组的所有值中删除任何字符?我尝试过,发现只有空格可以用trim()删除,但不能

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

我有这样一个数组:

$temp = array (".com",".in",".au",".cz");
我希望结果如下:

$temp = array ("com","in","au","cz");
我是这样得到结果的:

$temp = explode(",",str_replace(".","",implode(",",$temp)));
但是否有任何php数组函数可以直接从数组的所有值中删除任何字符?我尝试过,发现只有空格可以用
trim()
删除,但不能用于任何字符。

使用。这将替换任何不是字母、数字或空格的内容


我通常制作一个函数

function make_slug($data)
     {
         $data_slug = trim($data," ");
         $search = array('/','\\',':',';','!','@','#','$','%','^','*','(',')','_','+','=','|','{','}','[',']','"',"'",'<','>',',','?','~','`','&',' ','.');
         $data_slug = str_replace($search, "", $data_slug);
         return $data_slug;
     }
函数make_slug($data)
{
$data\u slug=trim($data,“”);
$search=array(“/”、“\\”、“:”、“;”、“!”、“@”、“#”、“$”、“%”、“^'、“*”、“(”、“)”、“\”、“+”、“=”、“|”、“{”、“}”、“[”、“、”、“、”、“、”、“、”、“、”、“、”、“、”、“、”、“、”、“、”)、”;
$data\u slug=str\u replace($search,“,$data\u slug);
返回$data\u slug;
}
然后这样称呼它

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


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

print_r($temp);
$temp=array(“.com”、.in”、.au”、.cz”);

对于($i=0;$i,作为问题的解决方案,请执行以下代码段

    $temp = array (".com",".in",".au",".cz");
    function strip_special_chars($v)
    {
        return str_replace('.','',$v);
    }
    $result[]=array_map('strip_special_chars',$temp);
如果提供第二个参数(字符掩码),实际上可以修剪任意字符。顾名思义,这只会删除字符串开头和结尾的字符。在您的情况下可能更合适

您可以将
array\u map()
ltrim()
与字符掩码的第三个参数一起使用,如下所示:

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

第三个参数应该是一个与正在处理的数组长度相匹配的参数数组,这就是我使用
array\u fill()
创建它的原因。

替换为空字符串,而不是空格Yea…空字符串应该传入函数,否则返回为“com”“@swap7927不客气。我很高兴这样做。我知道你也会对其他人这样做。在发布ans之前检查你的代码。它不起作用。str_replace只对字符串有效,而不是php数组。
$temp = array_map('ltrim', $temp, array_fill(0, count($temp), '.'));