⊗ppPmRcMA 220 of 447 menu

Rekursion und mehrdimensionale Strukturen in PHP

Gegeben ist ein mehrdimensionales Array beliebiger Verschachtelungstiefe, zum Beispiel dieses:

<?php $arr = [ 1, [ 2, 7, 8 ], [ 3, 4, [5, [6, 7]], ] ]; ?>

Wie Sie sehen können, hat dieses Array eine komplexe Struktur, wobei davon ausgegangen wird, dass diese Struktur beliebig sein kann und die Verschachtelungsebenen beliebig tief sein können.

Angenommen, wir möchten alle primitiven (das heißt, keine Arrays) Elemente unseres Arrays auf dem Bildschirm ausgeben. In diesem Fall könnten wir einfach keine Schleifen verwenden, um ein solches Array zu durchlaufen, da das Array eine unregelmäßige Struktur hat und der Verschachtelungsgrad unbekannt ist.

Allerdings eignet sich Rekursion sehr gut zum Durchlaufen eines solchen Arrays.

Erstellen wir zunächst eine Funktion, der wir unser Array als Parameter übergeben, und in der Funktion erstellen wir eine Schleife, um unser Array zu durchlaufen:

<?php function func($arr) { foreach ($arr as $elem) { echo $elem; } } func([1, [2, 7, 8], [3, 4, [5, [6, 7]]]]); ?>

Die von uns erstellte Schleife durchläuft nur die Elemente des Hauptarrays. Das heißt, zunächst gibt sie 1 aus, dann [2, 7, 8], und dann [3, 4, [5, [6, 7]].

Lassen Sie uns nun in der Schleife primitive Elemente und Array-Elemente unterscheiden:

<?php function func($arr) { foreach ($arr as $elem) { if (is_array($elem)) { // Element ist ein Array } else { // Element ist ein Primitiv echo $elem; } } } func([1, [2, 7, 8], [3, 4, [5, [6, 7]]]]); ?>

Und nun sorgen wir dafür, dass, falls unser Element ein Array ist, die Funktion sich selbst aufruft und dieses Array als Parameter übergibt:

<?php function func($arr) { foreach ($arr as $elem) { if (is_array($elem)) { func($elem); } else { echo $elem; } } } func([1, [2, 7, 8], [3, 4, [5, [6, 7]]]]); ?>

Gegeben ist ein mehrdimensionales Array beliebiger Verschachtelungstiefe, zum Beispiel dieses:

<?php $arr = [1, 2, 3, [4, 5, [6, 7]], [8, [9, 10]]]; ?>

Geben Sie mithilfe von Rekursion alle primitiven Elemente dieses Arrays auf dem Bildschirm aus.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen