ホームページ >バックエンド開発 >PHPチュートリアル >多次元 PHP 配列を日時要素で並べ替える方法

多次元 PHP 配列を日時要素で並べ替える方法

DDD
DDDオリジナル
2024-12-16 15:10:21433ブラウズ

How to Sort a Multidimensional PHP Array by a Datetime Element?

PHP での日付要素による多次元配列の並べ替え

以下のような構造を持つ配列を考えてみましょう。

$array = [
    [
        'id' => 2,
        'type' => 'comment',
        'text' => 'hey',
        'datetime' => '2010-05-15 11:29:45',
    ],
    [
        'id' => 3,
        'type' => 'status',
        'text' => 'oi',
        'datetime' => '2010-05-26 15:59:53',
    ],
    [
        'id' => 4,
        'type' => 'status',
        'text' => 'yeww',
        'datetime' => '2010-05-26 16:04:24',
    ],
];

どうすればよいでしょうかこの配列を「datetime」要素で並べ替えますか?

使用カスタム比較関数を使用した usort()

PHP の usort() 関数は、配列と、要素の順序を決定する比較関数を受け取ります。次のように、date_compare というカスタム比較関数を作成できます。

function date_compare($a, $b)
{
    $t1 = strtotime($a['datetime']);
    $t2 = strtotime($b['datetime']);
    return $t1 - $t2;
}

この関数は、各レコードの「datetime」フィールドの UNIX タイムスタンプを抽出し、それらの差を返します。この情報は、配列を並べ替えるために usort() によって使用されます。

並べ替え関数の適用

最後に、usort():

usort($array, 'date_compare');
これにより、'datetime' 要素に基づいて配列が昇順に並べ替えられます。

以上が多次元 PHP 配列を日時要素で並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。