PHP での日付配列の並べ替えは、特に日付が標準化された形式でない場合、難しい場合があります。
In特定のケースでは、「11-01-2012」や「01-01-2014」など、さまざまな形式の日付の配列があります。配列を値で昇順に並べ替える asort 関数の使用は、この場合機能しません。この関数は各日付を文字列として扱い、年-月-日の階層を無視するためです。
配列を正しく並べ替えるには、次のようにします。比較する前に各日付を並べ替え可能な形式に変換するカスタム並べ替え関数を使用できます。
日付を UNIX タイムスタンプに変換する
簡単な方法の 1 つは、各日付を次のように変換することです。 strtotime() 関数を使用した UNIX タイムスタンプ。 UNIX タイムスタンプは日付を 1970-01-01 からの秒数として表すため、比較や並べ替えが簡単になります。
UNIX タイムスタンプを使用して日付を並べ替えるカスタム並べ替え関数の使用例を次に示します。
usort($arr, function ($a, $b) {
return strtotime($a) - strtotime($b);
});
この関数は 2 つの日付 ($a 変数と $b 変数で表される) を入力として受け取り、それらの UNIX タイムスタンプの差を返します。結果の配列は、昇順の時系列で並べ替えられます。
追加の考慮事項
このメソッドでは、すべての日付が同じ形式であることを前提としていることに注意することが重要です。日付が異なるソースから取得されているか、異なる日付形式が使用されている場合は、より堅牢な日付解析および変換ライブラリを使用する必要があります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3