⊗ppPmRcMA 220 of 447 menu

Rekursi dan Struktur Multidimensi dalam PHP

Diberikan array multidimensi dengan tingkat kedalaman sembarang, contohnya, seperti ini:

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

Seperti yang Anda lihat, array ini memiliki struktur yang kompleks, dan diasumsikan bahwa struktur ini bisa sembarang dan tingkat kedalamannya bisa sangat dalam.

Misalkan kita ingin menampilkan semua elemen primitif (yaitu bukan array) dari array kita. Dalam hal ini, untuk melakukan iterasi array seperti ini kita tidak akan bisa menggunakan perulangan biasa, karena array memiliki struktur yang tidak beraturan dan tingkat kedalaman yang tidak diketahui.

Namun, untuk iterasi array seperti ini, rekursi sangat cocok untuk digunakan.

Pertama, kita buat sebuah fungsi, yang parameternya adalah array kita, dan di dalam fungsi kita buat perulangan untuk menelusuri array kita:

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

Perulangan yang kita buat hanya akan menelusuri elemen-elemen array utama. Artinya, awalnya ia akan menampilkan 1, lalu [2, 7, 8], dan kemudian [3, 4, [5, [6, 7]].

Sekarang mari kita pisahkan dalam perulangan antara elemen primitif dan elemen array:

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

Dan sekarang kita atur sehingga jika elemen kita adalah array, fungsi akan memanggil dirinya sendiri, dengan parameter array tersebut:

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

Diberikan array multidimensi dengan tingkat kedalaman sembarang, contohnya, seperti ini:

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

Dengan menggunakan rekursi, tampilkan semua elemen primitif dari array ini.

Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak