⊗ppPmRcMA 220 of 447 menu

Рекурсия ва структураҳои чандченака дар PHP

Массиви чандченакаи дараҷаи ихтиёрии фурӯравӣ дода шудааст, масалан, чунин:

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

Ҳамон тавре ки шумо мебинед, ин массив структураи мураккаб дорад, ва инчунин тахмин меравад, ки ин структура метавонад ихтиёрӣ бошад ва сатҳҳои фурӯравӣ метавонанд ба ҳар қадар чуқур бошанд.

Бигзор мо мехоҳем ҳамаи элементҳои примитивӣ (яъне, ғайри массив)-и массиви худро ба экран чоп кунем. Дар ин ҳолат барои гузаронидани чунин массиве мо танҳо истифода бурдани ҳалқаҳо наметавонем, зеро массив структураи нодуруст дорад ва сатҳи номаълуми фурӯравӣ дорад.

Аммо барои гузаронидани чунин массиве истифодаи рекурсия хеле мувофиқ хоҳад буд.

Аввалан функсияеро созем, ки параметр ба он массиви моро мегузаронем, ва дар функсия ҳалқаеро барои гузаронидани массиви мо созем:

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

Ҳалқае, ки мо сохтем, фақат элементҳои аслии массиврро мегузаронад. Яъне аввал он 1-ро чоп мекунад, сипас [2, 7, 8], ва баъд [3, 4, [5, [6, 7]].

Акнун биёед дар ҳалқа элементҳои примитивӣ ва элементҳои массиверо ҷудо кунем:

<?php function func($arr) { foreach ($arr as $elem) { if (is_array($elem)) { // элемент - массив } else { // элемент - примитив echo $elem; } } } func([1, [2, 7, 8], [3, 4, [5, [6, 7]]]]); ?>

Ва акнун биёед ҳамин тавр кунем, ки агар элементи мо - массив бошад, функсия худро даъват кунад, ки параметр ин массивро мегузаронад:

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

Массиви чандченакаи дараҷаи ихтиёрии фурӯравӣ дода шудааст, масалан, чунин:

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

Бо ёрии рекурсия ҳамаи элементҳои примитивии ин массиверо ба экран чоп кунед.

Тоҷикӣ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Мо барои коркарди сомона, таҳлил ва шахсӣ кардан аз cookie истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан