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

WBOY
リリース: 2024-05-03 22:36:01
オリジナル
658 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!