如何从数组中删除字符

时间:2014-02-21 09:25:49

标签: php arrays

这是我的阵列快照

Array(
        [created_at] => 2014-02-18T08:29:33.388Z
        [modified_at] => 2014-02-18T12:44:46.011Z
      )
  1. 我必须从[created]数组和[modified_at]删除字符,我该如何解决此问题?
  2. 我想要:[created_at] =>2014-02-18 8:29:33
  3. 其次是:[modified_at] =>2014-02-18 12:44:46
  4. 如何解决此问题?数据的格式为json,我试过这段代码:

    preg_replace('/[^a-zA-Z0-9]/', "_", $aba);
    

    什么是解决此问题的正确方法。

4 个答案:

答案 0 :(得分:1)

无需使用正则表达式,只需重新格式化日期字符串。

示例:

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

答案 1 :(得分:0)

严格按照你的意愿行事,即字符串操作(恰好代表日期/时间戳的字符串):

$t = Array (
    'created_at' => '2014-02-18T08:29:33.388Z',
    'modified_at' => '2014-02-18T12:44:46.011Z'
);

$r = array();
foreach ($t as $key => $element) {
    $r[$key] = str_replace('T', ' ', str_replace('Z', '', $element));

}


var_dump($r);

这没有将字符串转换为datestamps然后再返回的开销。

答案 2 :(得分:0)

$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

答案 3 :(得分:0)

请看这个

 $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