⊗ppPmRcMA 220 of 447 menu

Rekursiya va ko‘p o‘lchovli tuzilmalar PHPda

Ixtiyoriy darajadagi chuqurlikdagi ko‘p o‘lchovli massiv berilgan, masalan:

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

Ko‘rib turganingizdek, bu massiv murakkab tuzilishga ega, va bu tuzilish ixtiyoriy bo‘lib, chuqurlik darajalari cheksiz chuqur bo‘lishi mumkin.

Faraz qilaylik, biz massivning barcha oddiy (yani massiv bo‘lmagan) elementlarini ekranga chiqarmoqchimiz. Bunday massivni takrorlash uchun sikllardan foydalanish imkonsiz, chunki massiv noto‘g‘ri tuzilishga va noma'lum chuqurlik darajasiga ega.

Buning o‘rniga, bunday massivni takrorlash uchun rekursiyadan foydalanish juda qulay.

Boshlanishida, parametr sifatida massivni qabul qiladigan funksiya yaratamiz va funksiya ichida massivni takrorlash uchun sikl yaratamiz:

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

Biz yaratgan sikl faqat asosiy massivning elementlarini takrorlaydi. Ya'ni, avval 1 ni, keyin [2, 7, 8] ni va keyin [3, 4, [5, [6, 7]] ni chiqaradi.

Keling, siklda oddiy elementlar va massiv elementlarini ajratamiz:

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

Endi, agar elementimiz massiv bo‘lsa, funksiya o‘zini chaqirib, parametr sifatida shu massivni uzatadi:

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

Ixtiyoriy darajadagi chuqurlikdagi ko‘p o‘lchovli massiv berilgan, masalan:

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

Rekursiya yordamida bu massivning barcha oddiy elementlarini ekranga chiqaring.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish