上記で質問させていただきましたが、問題再現に不備があったため、再度投稿します
下記を実行してみてください
<?php $s='{ "data": { "21066": { "id": "21066", "title": "問題を再現しています", "date": "2021/07/02 08:45", "image": "http://www.", "movie": "https://" }, "21065": { "id": "21065", "title": "問題を再現しています", "date": "2021/07/01 22:22", "image": "http://", "movie": "https://" }, "21064": { "id": "21064", "title": "問題を再現しています", "date": "2021/07/01 20:45", "image": "http://", "movie": "https://" } } }'; $data = json_decode($s, true); array_multisort( array_map( "strtotime", array_column( $data["data"], "date" ) ), SORT_DESC, $data["data"] ) ; $data = json_encode($data, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT); file_put_contents("test.json",$data); ?>
日付けの並び替えが行われるはずですがデータが破損します
どういう破損かと申しますと
test.json { "data": [ { "id": "21066", "title": "問題を再現しています", "date": "2021/07/02 08:45", "image": "http://www.", "movie": "https://" }, { "id": "21065", "title": "問題を再現しています", "date": "2021/07/01 22:22", "image": "http://", "movie": "https://" }, { "id": "21064", "title": "問題を再現しています", "date": "2021/07/01 20:45", "image": "http://", "movie": "https://" } ] }
このような出力データとなってしまいます
正しくは
test.json { "data": { "21066": { "id": "21066", "title": "問題を再現しています", "date": "2021/07/02 08:45", "image": "http://www.", "movie": "https://" }, "21065": { "id": "21065", "title": "問題を再現しています", "date": "2021/07/01 22:22", "image": "http://", "movie": "https://" }, "21064": { "id": "21064", "title": "問題を再現しています", "date": "2021/07/01 20:45", "image": "http://", "movie": "https://" } } }
こうなると思うのですが、なぜでしょうか
回答1件
あなたの回答
tips
プレビュー