日期不在数组中转换

时间:2013-10-16 17:46:56

标签: php arrays

var_dump编了一个显示这些元素的数组(有266个,但我告诉你两个)。

array(266) {
  [1]=>
  array(5) {
    ["date_created"]=>
    string(10) "1381816800"
    ["project_number"]=>
    string(5) "02783"
    ["name"]=>
    string(9) "sdfsdfdfd"
    ["description"]=>
    string(13) "dsfsfdsfdssdf"
    ["manager"]=>
    string(11) "Kevin Allen"
  }
  [21]=>
  array(5) {
    ["date_created"]=>
    string(10) "1381816800"
    ["project_number"]=>
    string(5) "02783"
    ["name"]=>
    string(9) "sdfsdfdfd"
    ["description"]=>
    string(13) "dsfsfdsfdssdf"
    ["manager"]=>
    string(16) "Carter Hilkewich"
  }
}

我也需要在这个数组中转换日期:m-d-Y所以我写道:

private function dateConverter($array){
    foreach($array as $key=>$value){
        if(isset($value['date_created'])){
            $value['date_created'] = date("m-d-Y", strtotime($value['date_created']));
        }
    }

    return $array;
}

您将数组传入,遍历,转换日期并返回数组。简单。 'Cept它返回的是完全相同的数组。所以我想知道我需要将“新”数组保存到一个单独的数组中吗?我有一个类似的功能,用对象做这个,我从来没有保存过“新”对象。

想法?

1 个答案:

答案 0 :(得分:1)

两件事:

  • foreach未通过引用传递值,因此直接修改它不会将其存储回原始数组
  • date_created字段已经是时间戳,不需要strtotime

试试这个:

private function dateConverter($array){
    foreach($array as $key => &$value){
        if(isset($value['date_created'])){
            $value['date_created'] = date("m-d-Y", $value['date_created']);
        }
    }

    return $array;
}