-
usort関数を使用する方法:
function sortByDate($a, $b) { return strtotime($a['date']) - strtotime($b['date']); } $array = [ ['date' => '2022-01-15', 'title' => '記事1'], ['date' => '2023-03-10', 'title' => '記事2'], ['date' => '2021-11-30', 'title' => '記事3'], ]; usort($array, 'sortByDate'); foreach ($array as $item) { echo $item['title'] . "\n"; }
上記の例では、
$array
配列の各要素には、日付とタイトルのキーが含まれています。sortByDate
関数は、strtotime
関数を使用して日付をUNIXタイムスタンプに変換し、その差を比較して並び替えを行います。 -
array_multisort関数を使用する方法:
$array = [ ['date' => '2022-01-15', 'title' => '記事1'], ['date' => '2023-03-10', 'title' => '記事2'], ['date' => '2021-11-30', 'title' => '記事3'], ]; foreach ($array as $key => $row) { $dates[$key] = $row['date']; } array_multisort($dates, SORT_ASC, $array); foreach ($array as $item) { echo $item['title'] . "\n"; }
上記の例では、
array_multisort
関数を使用して$array
配列を$dates
配列の値に基づいて昇順に並び替えます。$dates
配列には日付のみを格納し、array_multisort
関数がそれを使用して並び替えを行います。 -
array_walk関数を使用する方法:
function sortByDate(&$value, $key) { $value['date'] = strtotime($value['date']); } $array = [ ['date' => '2022-01-15', 'title' => '記事1'], ['date' => '2023-03-10', 'title' => '記事2'], ['date' => '2021-11-30', 'title' => '記事3'], ]; array_walk($array, 'sortByDate'); array_multisort(array_column($array, 'date'), SORT_ASC, $array); foreach ($array as $item) { echo $item['title'] . "\n"; }
上記の例では、
array_walk
関数を使用して$array
配列の各要素の日付をUNIXタイムスタンプに変換します。その後、array_multisort
関数を使用して日付に基づいて並び替えを行います。
これらの方法を使用すると、PHPで配列を日付順に並び替えることができます。適切な方法を選択し、自分のニーズに合わせてコードを調整してください。