⊗ppPmRcMA 220 of 447 menu

Rekursi dan Struktur Multidimensi dalam PHP

Diberikan satu tatasusunan multidimensi dengan tahap bersarang arbitrari, contohnya seperti berikut:

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

Seperti yang anda lihat, tatasusunan ini mempunyai struktur yang kompleks, dan diandaikan bahawa struktur ini boleh menjadi arbitrari dan tahap bersarang boleh menjadi sangat dalam.

Katakan kita mahu mencetak semua elemen primitif (iaitu bukan tatasusunan) daripada tatasusunan kita ke skrin. Dalam kes ini, untuk mengulangi tatasusunan sedemikian, kita tidak boleh menggunakan gelung sahaja, kerana tatasusunan mempunyai struktur yang tidak teratur dan tahap bersarang yang tidak diketahui.

Walau bagaimanapun, untuk mengulangi tatasusunan sedemikian adalah sangat sesuai untuk menggunakan rekursi.

Pertama, mari buat fungsi, di mana kita akan menghantar tatasusunan kita sebagai parameter, dan dalam fungsi tersebut kita akan buat gelung untuk mengulangi tatasusunan kita:

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

Gelung yang kami buat hanya akan mengulangi elemen-elemen tatasusunan utama. Iaitu, pada mulanya ia akan mencetak 1, kemudian [2, 7, 8], dan kemudian [3, 4, [5, [6, 7]].

Sekarang mari kita bezakan antara elemen primitif dan elemen tatasusunan dalam gelung:

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

Dan sekarang mari kita buat supaya jika elemen kita adalah tatasusunan, fungsi memanggil dirinya sendiri, dengan menghantar tatasusunan tersebut sebagai parameter:

<?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 satu tatasusunan multidimensi dengan tahap bersarang arbitrari, contohnya seperti berikut:

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

Dengan menggunakan rekursi, cetak semua elemen primitif tatasusunan ini ke skrin.

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