J'ai besoin d'Une Boucle Très complexe

Résolu/Fermé
maknaoui Messages postés 3 Date d'inscription jeudi 21 mars 2013 Statut Membre Dernière intervention 12 mai 2014 - 9 mai 2014 à 18:17
maknaoui Messages postés 3 Date d'inscription jeudi 21 mars 2013 Statut Membre Dernière intervention 12 mai 2014 - 12 mai 2014 à 17:55
Bonjour
J'ai un problème sur mon code et j'ai besoin d'une boucle qui répond à mon besoin (afficher les valeur d'un tableau sans savoir combien il a des fils)

foreach($json as $k1=>$v1){
$v1=(array) $v1;
echo $v1["id"];

if(isset($v1['children'])){
foreach($v1['children'] as $k2=>$v2){
echo $v2["id"];

if(isset($v2['children'])){
foreach($v2['children'] as $k3=>$v3){
echo $v3["id"];

if(isset($v3['children'])){
foreach($v3['children'] as $k4=>$v4){
echo $v4["id"];


}
}

}
}

}
}

}

La partie :
if(isset($v3['children'])){
foreach($v3['children'] as $k4=>$v4){
echo $v4["id"];


}
}

Toujours se répéte svp si qlq peut m'aider à résoudre mon problème

2 réponses

mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
9 mai 2014 à 19:48
Bonjour,

Il faut utiliser un traitement récursif:

function traiteArray($array) {
    foreach $array AS $cle => $val {
        if(is_array($val)) {
            traiteArray($val);
        }
        // ici traitement sur $val
    }
}


A+
1
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
9 mai 2014 à 19:55
Pour comprendre la récursion, il faut d'abord comprendre la récursion.
0
mpmp93 Messages postés 6648 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
9 mai 2014 à 21:55
Loi de Hofstader: tout projet prend toujours plsu de temps que prévu, même en tenant compte de la loi de Hofstader
0
maknaoui Messages postés 3 Date d'inscription jeudi 21 mars 2013 Statut Membre Dernière intervention 12 mai 2014
12 mai 2014 à 17:55
Merci mpmp93 pour votre réponse :)
0