2016-06-24 10 views
0

このような配列でJSON値の時間内にコンテンツ配列をどのようにソートしますか?配列値の中のJSONをソートする方法

Array 
(
    [id] => 18 
    [content] => Array 
     (
      [0] => Array 
       (
        [id] => 39795 
        [json] => {"last_modified": "2016-05-07 13:40:28", "time": "53"} 
       ) 
      [1] => Array 
       (
        [id] => 39795 
        [json] => {"last_modified": "2016-05-07 14:18:06", "time": "90"} 
       ) 
     ) 
) 
+1

の作品ソート配列と、それは時間の値にアクセスするには、JSONをデコードしながら([並べ替え方法](http://stackoverflow.com/q/17364127 ); [dat jsonのデータからデータを取得する](http://stackoverflow.com/q/29308898))。もちろん、並べ替えの時間値のタイムスタンプを比較してください。 – Rizier123

+0

これが実際のデータ(ISO 8601の日付文字列)のようであれば、jsonをデコードする必要はありません。アルファベット順にソートすると、日付の昇順/降順のソートが行われます。ISOの日付形式は基本的にYmdHisです。 –

+0

@EliasVanOotegemこれは、時刻形式を変更したり、エンコードする前に値の順序を変更すると、それはjsonに:) – Rizier123

答えて

0

おかげで、これは

usort($response['content'], function ($a, $b) { 
    $aJson = json_decode($a['json'], true); 
    $bJson = json_decode($b['json'], true); 

    return $aJson['time'] > $bJson['time'] ? -1 : 1; 
}); 
関連する問題