0

var_dumpこれらの要素を表示する配列を編集しました (266 ありますが、2 つ表示しています)。

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

配列を渡し、ウォークスルーし、日付を変換して配列を返します。単純。'返されるのは、まったく同じ配列です。だから、「新しい」配列を別の配列に保存する必要があるのでしょうか? オブジェクトでこれを行う同様の機能があり、「新しい」オブジェクトを保存する必要はありませんでした。

考え?

4

1 に答える 1

1

2つのこと:

  • 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 に答える