現在の位置: ホーム> 最新記事一覧> Array_chunkを使用して、1時間ごとや毎日などの期間ごとにアレイをグループ化する方法は?

Array_chunkを使用して、1時間ごとや毎日などの期間ごとにアレイをグループ化する方法は?

M66 2025-04-26

PHPでは、 Array_Chunk関数は大きな配列を複数の小さな配列に分割できます。 Array_chunkは通常、アレイの固定長でグループ化されていますが、一部のシナリオでは、アレイを期間(1時間ごと、1日など)グループ化する必要がある場合があります。この記事では、 array_chunkを介して期間ごとに配列を実装する方法を紹介します。

1。array_chunk関数とは何ですか?

array_chunkは、大規模な配列を複数の小さなアレイに分割するPHPの関数です。その基本的な構文は次のとおりです。

 array_chunk(array $array, int $size, bool $preserve_keys = false): array
  • $配列:分割する必要がある配列。

  • $サイズ:小さな配列あたりの要素の最大数。

  • $ preserve_keys :元の配列のキー名を保持するかどうか、デフォルトはfalseです。

2。期間ごとのグループアレイ

毎時または毎日の期間ごとにグループ化する必要があるタイムスタンプの配列があるとします。 Array_chunkを使用して、これを達成するのに役立ちます。

時間ごとにグループ化されます

まず、タイムスタンプの配列を作成して、1時間ごとにグループ化できます。私たちがする必要があるのは、タイムスタンプを1時間に変換し、タイムスタンプを同じ時間にグループにグループ化することです。

 // タイムスタンプアレイをシミュレートします
$timestamps = [
    1617763200, // 2021-04-07 00:00:00
    1617766800, // 2021-04-07 01:00:00
    1617770400, // 2021-04-07 02:00:00
    1617802800, // 2021-04-07 06:00:00
    1617806400, // 2021-04-07 07:00:00
    1617810000, // 2021-04-07 08:00:00
    1617813600  // 2021-04-07 09:00:00
];

// グループタイムスタンプを1時間ごとに
$groupedByHour = [];
foreach ($timestamps as $timestamp) {
    $hour = date('Y-m-d H', $timestamp); // タイムスタンプを1時間フォーマットします
    $groupedByHour[$hour][] = $timestamp;
}

// 時間ごとにグループ化された配列を出力します
print_r($groupedByHour);

上記のコードは、各タイムスタンプの時間部分に従ってタイムスタンプをグループ化し、出力配列は時間ごとにグループ化されます。

 Array
(
    [2021-04-07 00] => Array
        (
            [0] => 1617763200
        )

    [2021-04-07 01] => Array
        (
            [0] => 1617766800
        )

    [2021-04-07 02] => Array
        (
            [0] => 1617770400
        )

    [2021-04-07 06] => Array
        (
            [0] => 1617802800
        )

    [2021-04-07 07] => Array
        (
            [0] => 1617806400
        )

    [2021-04-07 08] => Array
        (
            [0] => 1617810000
        )

    [2021-04-07 09] => Array
        (
            [0] => 1617813600
        )
)

毎日グループ

また、各グループが1日ですべてのタイムスタンプを含むように、日ごとにタイムスタンプをグループ化することもできます。

 // 日ごとにグループタイムスタンプ
$groupedByDay = [];
foreach ($timestamps as $timestamp) {
    $day = date('Y-m-d', $timestamp); // タイムスタンプを日ごとにフォーマットします
    $groupedByDay[$day][] = $timestamp;
}

// 日ごとにグループ化された出力配列
print_r($groupedByDay);

出力の結果は、日ごとにグループ化されます。

 Array
(
    [2021-04-07] => Array
        (
            [0] => 1617763200
            [1] => 1617766800
            [2] => 1617770400
            [3] => 1617802800
            [4] => 1617806400
            [5] => 1617810000
            [6] => 1617813600
        )
)

3。概要

array_chunkを使用すると、期間(1時間ごと、毎日など)ごとにタイムスタンプの配列を簡単にグループ化できます。 Array_chunkは通常、要素の数ごとにグループ化するために使用されますが、ここでは日付()関数を使用して、タイムスタンプを必要な期間にフォーマットし、これらの期間ごとにグループ化します。