⊗ppPmRcMA 220 of 447 menu

Rekursion og flerdimensjonale strukturer i PHP

Det er gitt en flerdimensjonal array med vilkårlig nivå av nesting, for eksempel slik som denne:

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

Som du kan se, har denne arrayen en kompleks struktur, og det antas at denne strukturen kan være vilkårlig og nivåene av nesting kan være uendelig dype.

La oss si at vi ønsker å vise alle primitive (altså ikke arrays) elementer i arrayen vår på skjermen. I dette tilfellet vil vi rett og slett ikke kunne bruke løkker for å gå gjennom en slik array, siden arrayen har en uregelmessig struktur og et ukjent nestingsnivå.

Derimot vil det være veldig praktisk å bruke rekursion for å gå gjennom en slik array.

La oss først lage en funksjon, hvor vi parameteren sender inn arrayen vår, og i funksjonen lager vi en løkke for å gå gjennom arrayen vår:

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

Løkken vi har laget vil bare gå gjennom elementene i hovedarrayen. Det vil si at først vil den vise 1, deretter [2, 7, 8], og deretter [3, 4, [5, [6, 7]].

La oss nå skille mellom primitive elementer og array-elementer i løkken:

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

Og la oss nå gjøre slik at hvis elementet vårt er en array, kaller funksjonen seg selv, og sender denne arrayen som en 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]]]]); ?>

Det er gitt en flerdimensjonal array med vilkårlig nivå av nesting, for eksempel slik som denne:

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

Ved hjelp av rekursion, vis alle primitive elementer i denne arrayen på skjermen.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis