Aktueller Standort: Startseite> Neueste Artikel> So verwenden Sie Array_Chunk zum Zeitpunkt der Elemente in einem Array

So verwenden Sie Array_Chunk zum Zeitpunkt der Elemente in einem Array

M66 2025-04-27

Während des Entwicklungsprozesses müssen wir häufig große Datenmengen in Stapeln verarbeiten. Unabhängig davon, ob es sich um Benutzeranfragen, Stapeldatenimport- oder Zeitaufgaben handelt, kann die Stapelverarbeitung die Systembelastung effektiv reduzieren und die Ausführungseffizienz verbessern. In PHP bietet uns die Funktion array_chunk eine einfache und effiziente Möglichkeit, Arrays im Chunking zu verarbeiten.

Was ist die Funktion array_chunk ?

Die Funktion array_chunk ist eine häufig verwendete Array -Verarbeitungsfunktion in PHP. Es unterteilt ein großes Array in mehrere kleine Arrays. Die Länge jedes kleinen Arrays kann nach Funktionsparametern eingestellt werden, was für Stapelverarbeitungsaufgaben sehr bequem ist.

Grundlegende Verwendung von Array_Chunk -Funktion

Funktionsprototyp:

 array_chunk(array $array, int $size, bool $preserve_keys = false): array
  • $ Array : Das ursprüngliche Array, das aufgeteilt werden soll.

  • $ Größe : Die Größe jedes kleinen Arrays.

  • $ PREISERVE_KEYS : Ob Sie die Schlüssel des ursprünglichen Arrays behalten sollen, standardmäßig False , wodurch der Schlüsselname zurückgesetzt wird.

Beispiel: Verwenden Sie Array_Chunk , um Aufgaben regelmäßig zu verarbeiten

Angenommen, wir haben eine ausstehende Liste von Benutzern. Jeder Benutzer muss eine Art Zeitleitungsoperation durchführen. Um eine übermäßige Datenverarbeitung sofort zu verhindern, können wir Array_Chunk verwenden, um die Benutzerliste zu stapeln.

Hier ist ein Beispielcode:

 <?php

// Simulation von Benutzerdaten
$users = [
    'user1', 'user2', 'user3', 'user4', 'user5',
    'user6', 'user7', 'user8', 'user9', 'user10'
];

// Anzahl der Benutzer pro Charge
$batchSize = 3;

// verwenden array_chunk Funktionen teilen Benutzerdaten in 3 Eine Reihe von Elementen
$userChunks = array_chunk($users, $batchSize);

foreach ($userChunks as $batch) {
    // Simulieren Sie die Zeitaufgaben
    echo "Verarbeitungsaufgabenstapel: " . implode(', ', $batch) . "\n";
    sleep(1); // Angenommen, jede Aufgabenverarbeitung erfordert 1 Zweite
}

?>

Ausgangsbeispiel:

 Verarbeitungsaufgabenstapel: user1, user2, user3
Verarbeitungsaufgabenstapel: user4, user5, user6
Verarbeitungsaufgabenstapel: user7, user8, user9
Verarbeitungsaufgabenstapel: user10

In diesem Beispiel unterteilt Array_Chunk das ursprüngliche Benutzerarray in mehrere kleine Stapel, wobei jede Charge bis zu 3 Benutzer enthält. Anschließend werden diese Benutzer von einer Foreach -Schleife verarbeitet, um die zeitgesteuerte Verarbeitungsaufgabe zu emulieren.

Warum ist Array_Chunk für die Timing -Verarbeitung geeignet?

  1. Speicherverwaltung : Array_Chunk teilen große Arrays in mehrere kleine Arrays, wodurch nur eine Stapel von Daten gleichzeitig verarbeitet und die Speicherverwendung verringert wird. Wenn das Datenvolumen sehr groß ist, vermeidet dieser Ansatz den Speicherüberlauf, der durch das Laden zu viel Daten gleichzeitig verursacht wird.

  2. Gleichzeitige Verarbeitung : Bei einigen zeitgesteuerten Aufgaben können bei geringem Datenmengen mehrere Aufgaben gleichzeitig ausgeführt werden, um die Verarbeitungseffizienz zu verbessern. Beispielsweise können verschiedene Chargen gleichzeitig in einem Hintergrundprozess verarbeitet werden.

  3. Steuerungsaufgabenfrequenz : Wenn das Aufgabenvolumen groß ist, können Sie die Frequenz der Aufgabenausführung steuern, indem Sie die Schlafzeit vernünftigerweise festlegen. Vermeiden Sie beispielsweise häufige Zugriff auf Datenbanken oder APIs von Drittanbietern, wodurch die Systemüberlastung vermieden wird.

Verwenden Sie Array_Chunk für die URL -Segmentierung

In einigen Fällen müssen wir möglicherweise Daten von mehreren verschiedenen URLs und der Stapelverarbeitung abrufen. Wenn Sie regelmäßig auf diese URLs zugreifen möchten, können Sie Array_Chunk kombinieren, um sie in Chargen zu verarbeiten. Angenommen, wir möchten Daten von einer Reihe von URLs abrufen, und die Anzahl der angeforderten URLs ist begrenzt. Wir können dies wie folgt tun:

 <?php

// Simulieren eine Gruppe URL Adresse
$urls = [
    'https://example.com/api/1', 'https://example.com/api/2', 'https://example.com/api/3',
    'https://example.com/api/4', 'https://example.com/api/5', 'https://example.com/api/6'
];

// Ersetzen Sie alle Domainnamen an m66.net
$urls = array_map(function ($url) {
    return preg_replace('/https:\/\/.*?\//', 'https://m66.net/', $url);
}, $urls);

// Jede Verarbeitung 2 indival URL
$batchSize = 2;

// verwenden array_chunk Die Funktion wird URL Liste unterteilt in 2 indival一组
$urlChunks = array_chunk($urls, $batchSize);

foreach ($urlChunks as $batch) {
    // Simulieren Sie den zeitgesteuerten Zugriff auf diese URL
    echo "Zugang URL Charge: " . implode(', ', $batch) . "\n";
    sleep(1); // Angenommen, jede Anfrage erfordert 1 Zweite
}

?>

Ausgangsbeispiel:

 Zugang URL Charge: https://m66.net/api/1, https://m66.net/api/2
Zugang URL Charge: https://m66.net/api/3, https://m66.net/api/4
Zugang URL Charge: https://m66.net/api/5, https://m66.net/api/6

In diesem Beispiel ersetzen wir zunächst den Domänennamen aller URLs durch preg_replace durch m66.net und verwenden dann Array_Chunk , um diese URLs zu stapeln, wodurch gleichzeitig zwei URLs zugegriffen werden.

Zusammenfassen

Durch die Funktion array_chunk bietet PHP uns eine bequeme Array -Segmentierungsfunktion. Unabhängig davon, ob es sich um zeitgesteuerte Verarbeitungsaufgaben, URLs für Stapelzugriff oder Batch -Operationen großer Datenvolumina handelt, kann eine effizientere Verarbeitung durch die rationale Verwendung von Array_Chunk erreicht werden. Die Batch -Verarbeitung kann nicht nur die Systemleistung optimieren, sondern auch effektiv die Ressourcen verwalten und die Stabilität und Zuverlässigkeit der Aufgabenausführung verbessern.