0

次の形式の PHP 2 次元配列があるとします。

$json =    [
          {"value": "New", "date": $date},
          {"value": "Open", "date": $date},
          {"value": "Close", "date": $date}
    ]

$array = json_decode($json);

日付が m/d/Y 形式の日時の場合、配列要素を最も古い日付から最新の日付に並べ替えるにはどうすればよいですか?

4

1 に答える 1

1

次のようなデータが与えられた場合:

$json = '[ {"value": "New", "date": "06/21/2013"}, {"value": "Open", "date": "06/20/2013"}, {"value": "Close", "date": "06/22/2013"} ]';
$array = json_decode($json, TRUE);//array of objects, so set second parameter to TRUE
usort($array, function ($a, $b){
    return strtotime($a['date']) - strtotime($b['date']);
});
print_r($array);

それは配列の配列を返します。オブジェクトの配列として残し、JSON として再エンコードする場合は、次を使用できます。

$array = json_decode($json);
$ord = array_map(function($a) {return $a->date;}, $array);
array_multisort($ord, $array);
$json = json_encode($array);
于 2013-08-14T19:13:30.307 に答える