⊗ppPmRcMA 220 of 447 menu

Récursion et structures multidimensionnelles en PHP

Soit un tableau multidimensionnel de niveau d'imbrication arbitraire, par exemple, comme celui-ci :

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

Comme vous pouvez le voir, ce tableau a une structure complexe, et de plus, on suppose que cette structure peut être arbitraire et que les niveaux d'imbrication peuvent être aussi profonds que possible.

Supposons que nous souhaitions afficher tous les éléments primitifs (c'est-à-dire non des tableaux) de notre tableau. Dans ce cas, pour parcourir un tel tableau, nous ne pourrons simplement pas utiliser de boucles, car le tableau a une structure irrégulière et un niveau d'imbrication inconnu.

En revanche, pour parcourir un tel tableau, il sera très pratique d'utiliser la récursion.

Pour commencer, créons une fonction, à laquelle nous passerons notre tableau en paramètre, et dans la fonction nous ferons une boucle pour parcourir notre tableau :

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

La boucle que nous avons faite ne parcourra que les éléments du tableau principal. C'est-à-dire qu'au début elle affichera 1, puis [2, 7, 8], et ensuite [3, 4, [5, [6, 7]].

Séparons maintenant dans la boucle les éléments primitifs et les éléments tableaux :

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

Et maintenant, faisons en sorte que si notre élément est un tableau, la fonction s'appelle elle-même, en passant ce tableau en paramètre :

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

Soit un tableau multidimensionnel de niveau d'imbrication arbitraire, par exemple, comme celui-ci :

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

À l'aide de la récursion, affichez tous les éléments primitifs de ce tableau à l'écran.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser