⊗ppPmRcMA 220 of 447 menu

PHP'de Özyineleme ve Çok Boyutlu Yapılar

Aşağıda, iç içe geçmiş rastgele bir seviyeye sahip çok boyutlu bir dizi verilmiştir, örneğin:

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

Gördüğünüz gibi, bu dizinin karmaşık bir yapısı vardır ve bu yapının rastgele olabileceği ve iç içe geçme seviyelerinin herhangi bir derinlikte olabileceği varsayılmaktadır.

Diyelim ki dizimizin tüm ilkel (yani dizi olmayan) elemanlarını ekranda göstermek istiyoruz. Bu durumda, böyle bir diziyi gezmek için döngüleri kullanmamız mümkün olmayacaktır, çünkü dizi düzensiz bir yapıya ve bilinmeyen bir iç içe geçme seviyesine sahiptir.

Ancak, böyle bir diziyi gezmek için özyineleme kullanmak çok uygun olacaktır.

İlk olarak, parametre olarak dizimizi ileteceğimiz bir fonksiyon yapalım ve fonksiyonun içinde dizimizi gezmek için bir döngü oluşturalım:

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

Yaptığımız döngü sadece ana dizinin elemanlarını gezecektir. Yani önce 1'i, sonra [2, 7, 8]'yi, ve sonra [3, 4, [5, [6, 7]]'yi gösterecektir.

Şimdi döngüde ilkel elemanları ve dizi elemanlarını ayıralım:

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

Ve şimdi, eğer elemanımız bir dizi ise, fonksiyonun kendisini çağırmasını ve parametre olarak bu diziyi iletmesini sağlayalım:

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

Aşağıda, iç içe geçmiş rastgele bir seviyeye sahip çok boyutlu bir dizi verilmiştir, örneğin:

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

Özyineleme kullanarak bu dizinin tüm ilkel elemanlarını ekranda gösterin.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet