⊗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
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ