Heim > Backend-Entwicklung > PHP-Problem > So durchlaufen Sie ein mehrdimensionales Array in PHP

So durchlaufen Sie ein mehrdimensionales Array in PHP

PHPz
Freigeben: 2023-04-19 13:58:44
Original
1191 Leute haben es durchsucht

PHP befasst sich als häufig verwendete serverseitige Programmiersprache häufig mit mehrdimensionalen Arrays. Beim Parsen und Bearbeiten mehrdimensionaler Arrays stellt sich häufig die Frage, wie die verschiedenen Ebenen dieser Arrays durchlaufen werden sollen. In diesem Artikel wird vorgestellt, wie man mehrdimensionale Arrays in PHP durchläuft.

  1. foreach-Schleife durchläuft mehrdimensionale Arrays

In PHP können wir die foreach-Schleife verwenden, um das Array zu durchlaufen. Beim Durchlaufen eines mehrdimensionalen Arrays können wir foreach-Schleifen verschachteln, um nacheinander auf jede Array-Ebene zuzugreifen. Das Folgende ist ein einfaches Beispiel:

$array = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9)
);

foreach ($array as $items) {
    foreach ($items as $item) {
        echo $item . ' ';
    }
    echo '<br>';
}
Nach dem Login kopieren

Der obige Code gibt die folgenden Ergebnisse aus:

1 2 3 
4 5 6 
7 8 9
Nach dem Login kopieren

Wie Sie sehen können, verwenden wir zunächst eine foreach-Schleife, um die erste Ebene zu durchlaufen des mehrdimensionalen Arrays und verwenden Sie dann eine verschachtelte foreach-Schleife innerhalb des Schleifenkörpers, um die zweite Ebene zu durchlaufen. Dadurch wird das gesamte mehrdimensionale Array der Reihe nach ausgegeben.

  1. Rekursive Funktionen verwenden, um mehrdimensionale Arrays zu durchlaufen

Zusätzlich zur Verwendung von foreach-Schleifen können wir auch rekursive Funktionen verwenden, um mehrdimensionale Arrays zu durchlaufen dimensionale Arrays. Unter rekursiver Funktion versteht man eine Technik, die die Funktion selbst während des Definitionsprozesses der Funktion aufruft. Wenn wir auf ein mehrdimensionales Array zugreifen, können wir eine rekursive Funktion schreiben, die immer tiefer in jede Ebene des Arrays vordringt, bis sie auf das innerste Element trifft. Das Folgende ist ein Beispiel für die Verwendung einer rekursiven Funktion zum Durchlaufen eines mehrdimensionalen Arrays:

$array = array(
    'name' => '张三',
    'age' => 18,
    'hobbies' => array(
        'reading',
        'swimming',
        'traveling'
    ),
    'friends' => array(
        array(
            'name' => '李四',
            'age' => 20
        ),
        array(
            'name' => '王五',
            'age' => 22,
            'hobbies' => array(
                'singing',
                'dancing'
            )
        )
    )
);

function traverseArray($arr)
{
    foreach ($arr as $key => $value) {
        if (is_array($value)) {
            traverseArray($value);
        } else {
            echo $key . ' => ' . $value . '<br>';
        }
    }
}

traverseArray($array);
Nach dem Login kopieren

Der obige Code gibt die folgenden Ergebnisse aus:

name => 张三 
age => 18 
0 => reading 
1 => swimming 
2 => traveling 
name => 李四 
age => 20 
name => 王五 
age => 22 
0 => singing 
1 => dancing
Nach dem Login kopieren
Nach dem Login kopieren

Wie Sie sehen können, Wir definieren zunächst ein traverseArray Eine rekursive Funktion, und im Funktionskörper wird eine foreach-Schleife verwendet, um das Array zu durchlaufen. Innerhalb des Schleifenkörpers verwenden wir die Funktion is_array, um zu erkennen, ob das aktuelle Element vom Array-Typ ist. Wenn ja, rufen Sie die Funktion traverseArray rekursiv auf, um den Durchlauf fortzusetzen. Andernfalls geben Sie das Schlüssel-Wert-Paar des Elements direkt aus.

Es ist zu beachten, dass eine rekursive Funktion sich selbst unendlich aufrufen kann, was zu einer Endlosschleife führt. Um dies zu vermeiden, müssen wir eine Bedingung hinzufügen, um die Rekursion innerhalb des Funktionskörpers zu beenden. Im obigen Beispiel gehen wir davon aus, dass alle Nicht-Array-Elemente die innersten Elemente sind und daher nicht erneut durchlaufen werden müssen.

  1. Verwenden Sie die Funktion array_walk_recursive, um mehrdimensionale Arrays zu durchlaufen.

In PHP können wir auch die Funktion array_walk_recursive verwenden, um mehrdimensionale Arrays zu durchlaufen . Diese Funktion ist eine Möglichkeit, eine Rückruffunktion rekursiv für ein mehrdimensionales Array auszuführen.

Das Folgende ist ein Beispiel für die Verwendung der Funktion array_walk_recursive zum Durchlaufen eines mehrdimensionalen Arrays:

$array = array(
    'name' => '张三',
    'age' => 18,
    'hobbies' => array(
        'reading',
        'swimming',
        'traveling'
    ),
    'friends' => array(
        array(
            'name' => '李四',
            'age' => 20
        ),
        array(
            'name' => '王五',
            'age' => 22,
            'hobbies' => array(
                'singing',
                'dancing'
            )
        )
    )
);

function output($value, $key)
{
    echo $key . ' => ' . $value . '<br>';
}

array_walk_recursive($array, 'output');
Nach dem Login kopieren

Der obige Code gibt die folgenden Ergebnisse aus:

name => 张三 
age => 18 
0 => reading 
1 => swimming 
2 => traveling 
name => 李四 
age => 20 
name => 王五 
age => 22 
0 => singing 
1 => dancing
Nach dem Login kopieren
Nach dem Login kopieren
# 🎜🎜#Wir definieren einen Namen. Es ist die Ausgabefunktion der Ausgabe, und der Funktionsname kann im zweiten Parameter der Funktion array_walk_recursive übergeben werden. Im Hauptteil der Ausgabefunktion geben wir direkt das Schlüssel-Wert-Paar des aktuellen Elements aus.

Es ist zu beachten, dass die Funktion array_walk_recursive mehrdimensionale Arrays nicht Schicht für Schicht durchläuft. Stattdessen führt es eine Tiefendurchquerung jedes Elements im Array durch, wobei jedes Nicht-Array-Element rekursiv durchlaufen wird und dann das tiefste Array-Element durchlaufen wird. Obwohl diese Funktion praktisch ist, erfüllt sie in einigen Fällen möglicherweise nicht bestimmte Durchlaufanforderungen.

Fazit

In PHP gibt es viele Möglichkeiten, mehrdimensionale Arrays zu durchlaufen. Die häufigste davon ist die Verwendung von foreach-Schleifen und rekursiven Funktionen. Obwohl die Funktion array_walk_recursive auch eine optionale Traversal-Methode bereitstellt, ist ihre Wirkung möglicherweise nicht so flexibel wie die der beiden anderen Methoden. Beim Schreiben eines Programms sollten wir basierend auf den spezifischen Anforderungen eine geeignete Traversierungsmethode auswählen.

Das obige ist der detaillierte Inhalt vonSo durchlaufen Sie ein mehrdimensionales Array in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage