配列を時間順に並び替える方法
配列を時間順に並び替えるには、array_multisort()とarray_map()とstrtotime()と組み合わせましょう。
サンプルコード
strtotime()に対応する時間の文字列を並び替えできます。SORT_ASC(昇順)、SORT_DESC(降順)を目的で使い分けて下さい。元の配列が変更されます。
一次元配列
<?php
$array = [ "2015/06/13", "2012/04/12", "2016/01/03", "2011/02/22" ] ;
array_multisort( array_map( "strtotime", $array ), SORT_ASC, $array ) ;
多次元配列
array_column()の引数に、対象のキー名を指定します。
<?php
$array = [
[
"A" => "2015/06/13",
"B" => "hoge" ,
] ,
[
"A" => "2016/01/03",
"B" => "fuga" ,
] ,
[
"A" => "2011/02/22",
"B" => "piyo" ,
] ,
] ;
array_multisort( array_map( "strtotime", array_column( $array, "A" ) ), SORT_ASC, $array ) ;
デモ
一次元配列の場合
昇順
<?php
/*** このコードは編集できます。 ***/
$array = [ "2015/06/13", "2012/04/12", "2016/01/03", "2011/02/22" ] ;
array_multisort( array_map( "strtotime", $array ), SORT_ASC, $array ) ;
var_dump( $array ) ;
降順
<?php
/*** このコードは編集できます。 ***/
$array = [ "2015/06/13", "2012/04/12", "2016/01/03", "2011/02/22" ] ;
array_multisort( array_map( "strtotime", $array ), SORT_DESC, $array ) ;
var_dump( $array ) ;
多次元配列の場合
昇順
<?php
/*** このコードは編集できます。 ***/
$array = [
[
"A" => "2015/06/13",
"B" => "hoge" ,
] ,
[
"A" => "2016/01/03",
"B" => "fuga" ,
] ,
[
"A" => "2011/02/22",
"B" => "piyo" ,
] ,
] ;
array_multisort( array_map( "strtotime", array_column( $array, "A" ) ), SORT_ASC, $array ) ;
var_dump( $array ) ;
降順
<?php
/*** このコードは編集できます。 ***/
$array = [
[
"A" => "2015/06/13",
"B" => "hoge" ,
] ,
[
"A" => "2016/01/03",
"B" => "fuga" ,
] ,
[
"A" => "2011/02/22",
"B" => "piyo" ,
] ,
] ;
array_multisort( array_map( "strtotime", array_column( $array, "A" ) ), SORT_DESC, $array ) ;
var_dump( $array ) ;
関連記事
- 配列を数値順に並び替える方法
- 配列を数値順に並び替えるには、sort()やarray_multisort()を利用しましょう。
- ディレクトリのファイルを一覧で取得する方法
- ディレクトリ内にある全ファイルを取得するには、whileとreaddir()を組み合わせます。
- 配列を文字数順に並び替える方法
- 配列を文字数順に並び替えるには、array_multisort()とarray_map()とstrlen()と組み合わせましょう。
- 配列から要素をランダムで取得する方法
- 配列から要素をランダムで取得するには、array_rand()を利用します。