Как удалить любой специальный символ из массива php?
У меня есть массив,
$temp = array (".com",".in",".au",".cz");
я хочу результат как:
$temp = array ("com","in","au","cz");
Я получил результат таким образом.
$temp = explode(",",str_replace(".","",implode(",",$temp)));
Но есть ли какая-либо функция php array, и мы можем напрямую удалить любой символ из всех значений массива.
я попытался и нашел, что только пробелы можно удалить с помощью обрезки, но не получить для любого персонажа.
Благодарю.
Используйте функцию preg_replace . Это заменит все, что не является буквой, числом или пространством.
СМОТРЕТЬ ДЕМО
<?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 ) ?>
Я вообще делаю функцию
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 будет освобождено от специальных символов
См. Демонстрацию
В качестве решения вашей проблемы выполните следующий фрагмент кода
$temp = array (".com",".in",".au",".cz"); function strip_special_chars($v) { return str_replace('.','',$v); } $result[]=array_map('strip_special_chars',$temp);