⊗ppPmRcMA 220 of 447 menu

PHP-da rekursiýa we kölölçekli gurluşlar

Belläki, bizde erkin çuňlukdaky kölölçekli massiw bar, mysal üçin, şeýle:

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

Görşiňiz ýaly, bu massiw çylşyrymly gurluşa eýe, we bu gurluşyň erkin bolup bilerdigi we çuňluk derejesiniň näçe çuň bolsa-da bolup bilerdigi göz öňünde tutulýar.

Diýeliň, biz massiwimiziň ähli primitiw (ýagny massiw däl) elementlerini ekrana çykarmak isleýäris. Bu ýagdaýda, beýle massiwy geçirmek üçin siklleri ulanmak mümkin bolmaz, sebäbi massiw nädogry gurluşa we näbelli çuňluk derejesine eýe.

Emma beýle massiwy geçirmek üçin rekursiýany ulanmak ýakyndan amatly bolar.

Ilki bilen, bir funksiýa ýasaýarys, ona parametr hökmünde biziň massiwimizi bereris, we funksiýanyň içinde biziň massiwimizi geçirmek üçin sikldan peýdalanyarys:

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

Biz ýasan sikl diňe esasy massiw elementlerini geçirer. Ýagny, ilki bilen ol 1-ni çykarar, soňra [2, 7, 8], we soňra [3, 4, [5, [6, 7]].

Indi sikl içinde primitiw elementleri we massiw elementlerini biri-birinden bölüp görkezeliň:

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

Indi şeýle edeliň, eger biziň elementimiz - massiw bolsa, funksiýa özüni çagyrsyn, parametr hökmünde şol massiwy bersin:

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

Belläki, erkin çuňlukdaky kölölçekli massiw bar, mysal üçin, şeýle:

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

Rekursiýa arkaly bu massiwdäki ähli primitiw elementleri ekrana çykaryň.

Türkmen
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkçeЎзбекOʻzbekTiếng Việt
Biz sahypanyň işlemegi, analitika we şahsyýetleşdirmek üçin cookie ulanýarys. Maglumatlaryň işlenişi Gizlinlik syýasaty boýunça amala aşyrylýar.
hemmesini kabul et sazlamak ret et