Php 如何从数组中删除字符
这是我的阵列快照Php 如何从数组中删除字符,php,arrays,Php,Arrays,这是我的阵列快照 Array( [created_at] => 2014-02-18T08:29:33.388Z [modified_at] => 2014-02-18T12:44:46.011Z ) 我必须从[created]数组和[modified_at]中删除字符,我应该如何解决此问题 我想要的是:[created_at]=>2014-02-18 8:29:33 其次是:[modified_at]=>2014-02-18 12:44
Array(
[created_at] => 2014-02-18T08:29:33.388Z
[modified_at] => 2014-02-18T12:44:46.011Z
)
[created]
数组和[modified_at]
中删除字符,我应该如何解决此问题[created_at]=>2014-02-18 8:29:33
[modified_at]=>2014-02-18 12:44:46
json
,我尝试过以下代码:
preg_replace('/[^a-zA-Z0-9]/', "_", $aba);
什么是解决此问题的正确方法。不需要使用正则表达式,只需重新格式化日期字符串即可 例如:
foreach ($arr as $key => $value) {
if (in_array($key, array('created_at', 'modified_at'))) {
$arr[$key] = date('Y-m-d H:i:s', strtotime($value));
}
}
要严格执行您想要的操作,这就是字符串操作(恰好代表日期/时间戳的字符串): 这不需要将字符串转换为日期戳,然后再转换回来
$result = preg_replace('/([0-9\-]+)[^0-9]*?([0-9\:]+).*/', '$1 $2', $array['created_at']);
将为您提供:
2014-02-18 12:44:46
2014-02-18 08:29:33
请看这个
$str = "2014-02-18T08:29:33.388Z";
$nstr = preg_replace('/\.([0-9]{3}[a-zA-Z])$/', "", $str);
echo preg_replace('/[a-zA-Z]/', " ", $nstr);
输出:2014-02-18 08:29:33您尝试的代码与问题完全无关。你真的想“用下划线替换任何不是字母或数字的东西”吗?不是根据你的问题!我想从[created_at]=>2014-02-18T08:29:33.388Zthanks manu中获得2014-02-18 8:29:33,但你能帮助正确的站点和预定方式学习Regex吗?请看这个问题:谢谢deepus,但输出是:2014-02-18T08:29:33,我想删除。这会带来额外的开销(使用strotime将字符串转换为时间戳,然后使用date再次转换为时间戳)只是为了操纵字符串值,因此并不能解决所提出的问题。
$str = "2014-02-18T08:29:33.388Z";
$nstr = preg_replace('/\.([0-9]{3}[a-zA-Z])$/', "", $str);
echo preg_replace('/[a-zA-Z]/', " ", $nstr);