プロが教える店舗&オフィスのセキュリティ対策術

下記の変数 $dataの出力結果のように、
配列の日付データを元に日付が新しいもの、又は古いもの順にソートするにはどのようにすればよいでしようか? 


出力
------------------------------
Array
(
  [0] => Array
   [Url] => http://test-1.com
   [Date] => 2018-03-29 02:00:00
  )
  [1] => Array
   [Url] => http://tokyo.com
    [Date] => 2018-03-11 02:00:00
  )
  [2] => Array
    [Url] => http://japan.com
    [Date] => 2018-03-21 02:10:00
  )
  [3] => Array
    [Url] => http://sample.com
    [Date] => 2018-03-15 02:00:00
  )
)

A 回答 (1件)

古い順


<?PHP
$a=[
["Url"=>"http://test-1.com","Date" => "2018-03-29 02:00:00"],
["Url"=>"http://tokyo.com" ,"Date" => "2018-03-11 02:00:00"],
["Url"=>"http://japan.com" ,"Date" => "2018-03-21 02:10:00"],
["Url"=>"http://sample.com","Date" => "2018-03-15 02:00:00"],
];
usort($a,function($x,$y){
if($x["Date"]==$y["Date"]) return 0;
return $x["Date"]>$y["Date"]?1:-1;
});
print_r($a);
?>
新しい順にするにはusort内の不等号を逆にしてください
    • good
    • 1
この回答へのお礼

array_multisort()でやるやり方をみつけたのですが、まさかusortでできるとは思ってもいませんでした。コールバックの中身の理解が複雑で、このあたりを理解したいと思います。とても勉強になります。ありがとうございます。

お礼日時:2018/03/30 15:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!