удалять теги «<» и «>» из массива в php

У меня такой массив:

Array ( [0] => "<one@one.com>" [1] => "<two@two.co.in>" [2] => "<three@hello.co.in>" ) 

Теперь я хочу удалить "<" и ">" из массива сверху, чтобы он выглядел

 Array ( [0] => "one@one.com" [1] => "two@two.co.in" [2] => "three@hello.co.in" ) 

Как это сделать в php? Пожалуйста, помогите мне.

Я использую array_filter() ; есть ли более простой способ сделать это, кроме array_filter() ?

Вы можете взять array_walk:

 // Removes starting and trailing < and > characters function trim_gt_and_lt(&$value) { $value = trim($value, "<>"); } array_walk($array, 'trim_gt_and_lt'); 

Обратите внимание, что это также удалит start > и trailing < которые могут быть не такими, какие вы хотите.

Во-первых, если вы хотите изменить значения, вы хотите использовать array_map() , а не array_filter() . array_filter() выборочно удаляет или сохраняет записи массива.

 $output = array_map('remove_slashes', $input); function remove_slashes($s) { return preg_replace('!(^<|>$)!', '', $s); } 

Конечно, вы могли бы сделать это с помощью простой петли foreach .

str_replace – это опция или любые другие функции замены в PHP, такие как preg_replace и т. д.

вы проходите через массив и делаете это один за другим?

 $arr = array( "<one@one.com>", "<two@two.co.in>" ,"<three@hello.co.in>"); foreach ($arr as $k=>$v){ $arr[$k] = trim($v,"<>") ; } print_r($arr); 

вывод

 $ php test.php Array ( [0] => one@one.com [1] => two@two.co.in [2] => three@hello.co.in ) 

Почему бы просто не использовать str_replace

 $teste = array("<one@one.com>","<two@two.co.in>","<three@hello.co.in>"); var_dump(str_replace(array('<','>'),'',$teste)); 

Будет распечатываться

 array 0 => string 'one@one.com' (length=11) 1 => string 'two@two.co.in' (length=13) 2 => string 'three@hello.co.in' (length=17)