如何搜索和删除数组元素中的各种字符串?

时间:2015-03-16 21:54:08

标签: php arrays

我有登录数据的数组,我需要删除各种用户定义的字符串,例如,我的数组看起来像:

Array ( [0] => Date: 16/03/2015 20:39 [1] => IP Address: 93.136.99.89 [2]

我想要做的是删除"日期:"来自第一个数组元素和" IP地址"来自第二个数组元素。

现在我正在使用str_replace:

$lastlogindate = str_replace('Date:', 'Datum:', $lastlogin[0]);

但是有没有更优雅的方法来做这个,也许,找到定义的出现,然后用标签包装它,对于数组元素中字符串中的每个定义的出现?

2 个答案:

答案 0 :(得分:1)

您仍然可以使用str_replace(),但将数组参数传递给它:

$lastlogindate = str_replace(array('Date: ', 'IP Address: '), '', $lastlogin);

对于输入数组:

$lastlogin = ['Date: 16/03/2015 20:39', 'IP Address: 93.136.99.89'];

它会让你:

Array ( [0] => 16/03/2015 20:39 [1] => 93.136.99.89 )

答案 1 :(得分:0)

您也可以使用正则表达式替换

preg_replace("/(.*?: )(.*)/", "$2", $input);迭代你的数组并替换每个值。

$input = array( 0 => 'Date: 16/03/2015 20:39', 1 => 'IP Address: 93.136.99.89' );

$array_output = array();
foreach ($input as $key => $value){
    array_push($array_output, preg_replace("/(.*?: )(.*)/", "$2", $value));
}
var_dump($array_output);

// this is the output
array(2) {
  [0]=>
  string(16) "16/03/2015 20:39"
  [1]=>
  string(12) "93.136.99.89"
}

希望这有帮助