ホームページ  >  記事  >  バックエンド開発  >  PHPを使用して、キー名を保持しながら配列内のタイムスタンプをソートするにはどうすればよいですか?

PHPを使用して、キー名を保持しながら配列内のタイムスタンプをソートするにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-05-03 22:36:01713ブラウズ

uasort() 関数を使用して、キー名を保持したまま配列を並べ替えることができます。タイムスタンプに基づいて並べ替えるには、要素内のタイムスタンプ フィールドを比較するカスタム比較関数 Compare_timestamps を使用できます。実際の場合、この比較関数は、キー名を保持しながら配列内のタイムスタンプを並べ替え、並べ替えられた配列を小さい順に出力するために使用されます。

如何使用 PHP 对数组中的时间戳进行排序,保留键名?

キー名を保持したまま、PHP で配列をタイムスタンプで並べ替える

PHP では、 uasort( ) この関数は、キー名を保持したまま配列をソートします。これは、配列を並べ替える構文です。

uasort($array, $sort_function);

ここで、$array は並べ替える配列、$sort_function はユーザー定義の比較関数です。

並べ替え比較関数

並べ替え比較関数は、特定の形式に従う必要があります:

function sort_function(mixed $a, mixed $b): int

2 つのパラメーター $a# を受け入れる必要があります。 # # および $b、これらのパラメータは比較される配列要素を表します。関数は次の値を返す必要があります:

  • -1: $a が $b の前に来る必要がある場合。
  • 0: $a と $b が等しい場合。
  • 1: $a が $b の後に来る必要がある場合。

タイムスタンプに基づいて並べ替える

タイムスタンプに基づいて配列を並べ替えるには、次の並べ替え比較関数を使用できます:

function compare_timestamps(mixed $a, mixed $b): int
{
    return $a['timestamp'] - $b['timestamp'];
}

Thisこの関数は、配列要素の

timestamp フィールドを比較し、要素を順番に配置するための適切な値を返します。

実際的なケース

次に、並べ替え関数を使用して配列内のタイムスタンプを並べ替える実際的なケースを示します:

$array = [
    'item1' => ['timestamp' => 1593475200],
    'item2' => ['timestamp' => 1601260800],
    'item3' => ['timestamp' => 1584230400],
];

uasort($array, 'compare_timestamps');

print_r($array);

出力:

Array
(
    [item3] => Array
        (
            [timestamp] => 1584230400
        )

    [item1] => Array
        (
            [timestamp] => 1593475200
        )

    [item2] => Array
        (
            [timestamp] => 1601260800
        )
)

ご覧のとおり、配列はキー名を保持しながらタイムスタンプ順にソートされています。

以上がPHPを使用して、キー名を保持しながら配列内のタイムスタンプをソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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