0

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 它返回的是完全相同的数组。所以我想知道我是否需要将“新”数组保存到单独的数组中?我有一个类似的函数可以对对象执行此操作,并且我不必保存“新”对象。

想法?

4

1 回答 1

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;
}
于 2013-10-16T17:51:44.773 回答