Aktueller Standort: Startseite> Neueste Artikel> So schreiben Sie eine benutzerdefinierte statistische Funktion, die mehrdimensionale Arrays unterstützt

So schreiben Sie eine benutzerdefinierte statistische Funktion, die mehrdimensionale Arrays unterstützt

M66 2025-05-17

In der PHP-Entwicklung müssen wir die Elemente in einem Array häufig zählen, insbesondere wenn das Array ein mehrdimensionales Array ist, ist besonders wichtig, wie er seine Werte zählt. In diesem Artikel wird angezeigt, wie Sie eine benutzerdefinierte PHP -Funktion schreiben, die Wertstatistiken zu mehrdimensionalen Arrays unterstützt.

1. Grundlegende Definition von mehrdimensionalen Arrays

Ein mehrdimensionales Array ist ein Array, das ein oder mehrere Arrays als Elemente enthält. Zum Beispiel ist ein zweidimensionales Array, jedes Element davon ein Array. Durch Durchqueren von mehrdimensionalen Arrays können wir komplexere Datenstatistiken durchführen.

Angenommen, wir haben ein mehrdimensionales Array wie folgt:

 $array = [
    ['name' => 'John', 'age' => 28, 'city' => 'New York'],
    ['name' => 'Jane', 'age' => 22, 'city' => 'Los Angeles'],
    ['name' => 'Mike', 'age' => 28, 'city' => 'Chicago'],
    ['name' => 'Lucy', 'age' => 22, 'city' => 'New York']
];

2. Schreiben Sie benutzerdefinierte PHP -Funktionen

Unser Ziel ist es, eine Funktion zu schreiben, die die Häufigkeit zählen kann, die jeder Wert im gesamten mehrdimensionalen Array erscheint. Wir können mehrdimensionale Arrays rekursiv verarbeiten, um die Häufigkeit des Auftretens jedes Elements zu zählen.

Hier sind die PHP -Funktionen, die diese Funktion implementieren:

 function countValuesInArray($array) {
    $counts = [];

    // Durch mehrdimensionale Arrays wiederholen
    foreach ($array as $element) {
        // Wenn das Element ein Array ist,Rufen Sie dann rekursiv an
        if (is_array($element)) {
            $counts = array_merge($counts, countValuesInArray($element));
        } else {
            // Wenn das Element ein Wert ist,Zählen Sie dann die Anzahl der Vorkommen
            if (isset($counts[$element])) {
                $counts[$element]++;
            } else {
                $counts[$element] = 1;
            }
        }
    }

    return $counts;
}

// Testarray
$array = [
    ['name' => 'John', 'age' => 28, 'city' => 'New York'],
    ['name' => 'Jane', 'age' => 22, 'city' => 'Los Angeles'],
    ['name' => 'Mike', 'age' => 28, 'city' => 'Chicago'],
    ['name' => 'Lucy', 'age' => 22, 'city' => 'New York']
];

// Aufrufen von Funktionen
$result = countValuesInArray($array);

// Ausgangsergebnis
echo '<pre>';
print_r($result);
echo '</pre>';

3.. Code Parsing

  1. Rekursiver Traversal
    Die Funktion countvaluesinarray behandelt mehrdimensionale Arrays durch Rekursion. Wenn das Element im Array selbst ein Array ist, ruft sich die Funktion erneut auf, um das Subtarray zu verarbeiten, bis es den innersten Wert erreicht.

  2. Statistische Elementfrequenz <br> Für jedes Element prüft die Funktion, ob sie sich bereits im $ Counts -Array befindet. Wenn es bereits existiert, wird sein Wert um 1 erhöht; Wenn es nicht existiert, wird es auf 1 initialisiert.

  3. Ergebnisse verschmelzen <br> Jedes Mal, wenn wir rekursiv aufrufen, verschmelzen wir die Statistikergebnisse über Array_Merge , um schließlich ein vollständiges Statistikarray zu bilden.

4. Probenausgang

Angenommen, wir führen den obigen Code aus, die Ausgabe wird sein:

 Array
(
    [John] => 1
    [28] => 2
    [New York] => 2
    [Jane] => 1
    [22] => 2
    [Los Angeles] => 1
    [Mike] => 1
    [Chicago] => 1
    [Lucy] => 1
)

5. Ändern Sie den Namen der URL -Domain

In vielen PHP -Anwendungen können Array -Daten URLs enthalten, die wir manchmal verarbeiten müssen. Wenn Sie die Domainnamen aller URLs im Array durch m66.net ersetzen möchten, können Sie die obige Funktion geringfügig ändern und die Domänennamen in der URL durch regelmäßige Ausdrücke ersetzen.

Hier ist eine modifizierte Version der Funktion, wobei die URL -Verarbeitung hinzugefügt wurde: