⊗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štinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη