In PHP kann die Funktion array_chunk ein großes Array in mehrere kleine Arrays teilen. Obwohl Array_Chunk normalerweise durch eine feste Länge eines Arrays gruppiert wird, müssen wir in einigen Szenarien das Array möglicherweise nach Zeitraum (z. B. stündlich, täglich usw.) gruppieren. In diesem Artikel wird vorgestellt, wie Arrays nach Zeitraum über Array_Chunk implementiert werden.
Array_Chunk ist eine Funktion in PHP, die ein großes Array in mehrere kleine Arrays unterteilt. Die grundlegende Syntax ist wie folgt:
array_chunk(array $array, int $size, bool $preserve_keys = false): array
$ Array : Ein Array, das geteilt werden muss.
$ Größe : Die maximale Anzahl von Elementen pro kleiner Array.
$ PREISERVE_KEYS : Unabhängig davon, ob der Schlüsselname des ursprünglichen Arrays beibehalten wird, ist der Standard falsch .
Angenommen, wir haben eine Reihe von Zeitstempeln, die nach stündlichen oder täglichen Zeiträumen gruppiert werden müssen. Wir können Array_Chunk verwenden, um dies zu erreichen.
Erstens können wir eine Reihe von Zeitstempeln erstellen und sie stundenlang gruppieren. Wir müssen den Zeitstempel in eine Stunde umwandeln und die Zeitstempel mit derselben Stunde in eine Gruppe gruppieren.
// Simulieren Sie das Zeitstempelarray
$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
];
// Gruppenzeitstempel stundenlang
$groupedByHour = [];
foreach ($timestamps as $timestamp) {
$hour = date('Y-m-d H', $timestamp); // Formatieren Sie den Zeitstempel stundenlang
$groupedByHour[$hour][] = $timestamp;
}
// Ein Array ausgeben, das nach Stunden gruppiert ist
print_r($groupedByHour);
Der obige Code gruppiert die Zeitstempel gemäß dem Stunde Teil jedes Zeitstempels, und die Ausgabebereich werden beispielsweise nach Stunden gruppiert:
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
)
)
Wir können auch tagsüber Zeitstempel gruppieren, so dass jede Gruppe an einem Tag alle Zeitstempel enthält.
// Gruppenzeitstempel bei Tag
$groupedByDay = [];
foreach ($timestamps as $timestamp) {
$day = date('Y-m-d', $timestamp); // Formatieren Sie den Zeitstempel tagsüber
$groupedByDay[$day][] = $timestamp;
}
// Ausgangsarray, die tagsüber gruppiert sind
print_r($groupedByDay);
Das Ausgabeergebnis wird nach Tagen gruppiert:
Array
(
[2021-04-07] => Array
(
[0] => 1617763200
[1] => 1617766800
[2] => 1617770400
[3] => 1617802800
[4] => 1617806400
[5] => 1617810000
[6] => 1617813600
)
)
Mit Array_Chunk können wir leicht eine Reihe von Zeitstempeln nach Zeiträumen (z. B. stündlich, täglich usw.) gruppieren. Obwohl Array_Chunk normalerweise verwendet wird, um nach Anzahl der Elemente zu gruppieren, verwenden wir hier die Funktion Date (), um die Zeitstempel in den Zeitraum zu formatieren, den wir benötigen, und gruppieren sie dann nach diesen Zeiträumen.