我有登录数据的数组,我需要删除各种用户定义的字符串,例如,我的数组看起来像:
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]);
但是有没有更优雅的方法来做这个,也许,找到定义的出现,然后用标签包装它,对于数组元素中字符串中的每个定义的出现?
答案 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"
}
希望这有帮助