kaldır "<"

5 Cevap php

Ben böyle bir dizi var:

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

Şimdi "<" kaldırmak ve ">" diziden yukarıdan benziyor böylece istiyorum

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

Php bunu nasıl? Bana yardım edin.

Ben kullanıyorum {[(0)];} yapmak için daha kolay bir yol olduğunu dışında array_filter()?

5 Cevap

Bunu bir array_walk alabilir:

// Removes starting and trailing < and > characters

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

array_walk($array, 'trim_gt_and_lt');

Bu also ne istediğiniz olmayabilir ki > başlayan ve < sondaki kaldırmak olduğunu ancak unutmayın.

Eğer değerlerini değiştirmek istiyorsanız Öncelikle, bu array_map() you want, not array_filter() . array_filter() seçici kaldırır ya da dizi girdileri tutar bulunuyor.

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

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

Elbette çok basit bir foreach döngü ile bu yapabilirdi.

str_replace bir seçenek veya preg_replace vb PHP herhangi başka yedek fonksiyonları

Eğer dizi geçmesi ve bunu tek tek yapmak?

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

çıktı

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

Neden sadece kullanmak değil, str_replace

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

Yazdıracaktır

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