⊗ppPmRcMA 220 of 447 menu

Rekursion og multidimensionelle strukturer i PHP

Givet et multidimensionelt array med en vilkårlig niveau af indlejring, for eksempel sådan et:

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

Som du kan se, har dette array en kompleks struktur, og det antages, at denne struktur kan være vilkårlig, og niveauerne af indlejring kan være uendeligt dybe.

Lad os sige, at vi vil udskrive alle primitive (altså ikke arrays) elementer af vores array. I dette tilfælde vil vi simpelthen ikke kunne bruge loops til at gennemgå et sådant array, fordi arrayet har en uregelmæssig struktur og et ukendt indlejringsniveau.

Men for at gennemgå et sådant array vil det være meget praktisk at bruge rekursion.

Lad os starte med at lave en funktion, hvor vi som parameter sender vores array, og i funktionen laver vi et loop for at gennemgå vores array:

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

Det loop, vi har lavet, vil kun gennemgå elementerne i hovedarrayet. Det vil sige, først vil det udskrive 1, derefter [2, 7, 8], og derefter [3, 4, [5, [6, 7]].

Lad os nu i løkken skelne mellem primitive elementer og array-elementer:

<?php function func($arr) { foreach ($arr as $elem) { if (is_array($elem)) { // element er et array } else { // element er en primitiv værdi echo $elem; } } } func([1, [2, 7, 8], [3, 4, [5, [6, 7]]]]); ?>

Og lad os nu gøre sådan, at hvis vores element er et array, kalder funktionen sig selv, og sender dette array som parameter:

<?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]]]]); ?>

Givet et multidimensionelt array med en vilkårlig niveau af indlejring, for eksempel sådan et:

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

Med hjælp af rekursion, udskriv alle primitive elementer af dette array.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικά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
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis