PHP での日付配列の並べ替えは、特に日付が標準化された形式ではない場合に注意が必要な場合があります。
In特定のケースでは、「11-01-2012」や「01-01-2014」など、さまざまな形式の日付の配列があります。配列を値で昇順に並べ替える asort 関数の使用は、各日付を文字列として扱い、年-月-日の階層を無視するため、この場合は機能しません。
配列を正しく並べ替えるには、次のようにします。比較する前に、各日付を並べ替え可能な形式に変換するカスタム並べ替え関数を使用できます。
日付を UNIX タイムスタンプに変換する
簡単な方法の 1 つは、各日付を次のように変換することです。 strtotime() 関数を使用した UNIX タイムスタンプ。 UNIX タイムスタンプは、日付を 1970-01-01 からの秒数として表すため、比較や並べ替えが簡単になります。
UNIX タイムスタンプを使用して日付を並べ替えるカスタム並べ替え関数の使用例を次に示します。
<code class="php">usort($arr, function ($a, $b) { return strtotime($a) - strtotime($b); });</code>
この関数は 2 つの日付 ($a 変数と $b 変数で表される) を入力として受け取り、それらの UNIX タイムスタンプの差を返します。結果の配列は、昇順の時系列で並べ替えられます。
追加の考慮事項
このメソッドでは、すべての日付が同じ形式であると想定していることに注意することが重要です。日付が異なるソースから取得されている場合、または異なる日付形式が使用されている場合は、より堅牢な日付解析および変換ライブラリを使用する必要があります。
以上がPHP で異なる形式の日付配列を並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。