⊗ppPmRcMA 220 of 447 menu

Rekurzija in večdimenzionalne strukture v PHP

Dano je večdimenzionalno poljubno polje na ravni gnezditve, na primer takšno:

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

Kot lahko vidite, ima to polje kompleksno strukturo, pri čemer se predpostavlja, da je ta struktura lahko poljubna in so ravni gnezditve lahko poljubno globoke.

Recimo, da želimo izpisati vse primitivne (to je, ne polja) elemente našega polja. V tem primeru preprosto ne moremo uporabiti zank za pregled takšnega polja, ker ima polje nepravilno strukturo in neznano raven gnezditve.

Vendar pa bo za pregled takšnega polja zelo priročno uporabiti rekurzijo.

Za začetek naredimo funkcijo, kamor bomo kot parameter podali naše polje, v funkciji pa naredimo zanko za pregled našega polja:

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

Zanka, ki smo jo naredili, bo pregledovala le elemente glavnega polja. To pomeni, da bo najprej izpisala 1, nato [2, 7, 8], in nato [3, 4, [5, [6, 7]].

Zdaj pa ločimo v zanki primitivne elemente in elemente-polja:

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

In zdaj naredimo tako, da če je naš element - polje, funkcija pokliče samo sebe, in poda kot parameter to polje:

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

Dano je večdimenzionalno polje poljubne ravni gnezditve, na primer takšno:

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

Z uporabo rekurzije izpišite vse primitivne elemente tega polja na zaslon.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni