删除“<”和“>”来自php中的数组的标签

时间:2010-01-19 12:32:05

标签: php string

我有一个这样的数组:

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()

5 个答案:

答案 0 :(得分:7)

你可以在上面使用array_walk:

// Removes starting and trailing < and > characters

 function trim_gt_and_lt(&$value) 
{ 
    $value = trim($value, "<>"); 
}

array_walk($array, 'trim_gt_and_lt');

但请注意,这会同时删除>的开始和<的结尾,这可能不是您想要的。

答案 1 :(得分:5)

首先,如果您想更改值,则需要array_map(),而不是array_filter()array_filter()有选择地删除或保留数组条目。

$output = array_map('remove_slashes', $input);

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

当然,您也可以使用简单的foreach循环执行此操作。

答案 2 :(得分:1)

str_replace是一个选项,或PHP中的任何其他替换函数,如preg_replace等。

答案 3 :(得分:0)

你通过数组并逐个进行?

$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
)

答案 4 :(得分:0)

为什么不使用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)