Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/01/2011, 17h17   #1
Membre du Club
 
Inscription : janvier 2009
Messages : 98
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 98
Points : 44
Points : 44
Par défaut Exploiter et créer un tableau récursif

Bonjour,

J'ai posté une question il y a quelques jours pour lire un tableau de manière récursive. On m'a suggéré d'utiliser Recursive iterator mais que je ne peux appliquer dans mon cas car les enfants ne sont pas de nouveaux tableaux (je ne peux pas modifier ça.)

Voici mon tableau à traiter :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
Array
(
    [0] => Array
        (
            [Calcul] => Array
                (
                    [id] => 1
                    [nom] => Gros cacul maitre
                    [comptes] => 
                    [order] => 0
                    [parent_id] => 
                    [groupe_id] => 3
                    [lft] => 1
                    [rght] => 8
                )
 
            [children] => Array
                (
                    [0] => Array
                        (
                            [Calcul] => Array
                                (
                                    [id] => 2
                                    [nom] => Calcul moyen 2
                                    [comptes] => 
                                    [order] => 0
                                    [parent_id] => 1
                                    [groupe_id] => 3
                                    [lft] => 2
                                    [rght] => 5
                                )
 
                            [children] => Array
                                (
                                    [0] => Array
                                        (
                                            [Calcul] => Array
                                                (
                                                    [id] => 4
                                                    [nom] => Enfant du calcul moyen
                                                    [comptes] => 
                                                    [order] => 0
                                                    [parent_id] => 2
                                                    [groupe_id] => 3
                                                    [lft] => 3
                                                    [rght] => 4
                                                )
 
                                            [children] => Array
                                                (
                                                )
 
                                        )
 
                                )
 
                        )
 
                    [1] => Array
                        (
                            [Calcul] => Array
                                (
                                    [id] => 3
                                    [nom] => Calcul moyen 2 encore
                                    [comptes] => 
                                    [order] => 0
                                    [parent_id] => 1
                                    [groupe_id] => 3
                                    [lft] => 6
                                    [rght] => 7
                                )
 
                            [children] => Array
                                (
                                )
 
                        )
 
                )
 
        )
 
)
Voici la fonction sur laquelle je bloque
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 function Childscalc($calculs, $newtab = array(), $child){
		foreach($calculs as $i => $calcul){
			echo $child.' <br />';
			if($child == 'yes'){
					$_SESSION['newtab'][$_SESSION['k']-1]['childs'][$_SESSION['j']]['nom'] = $calcul['Calcul']['nom'];
					$_SESSION['newtab'][$_SESSION['k']-1]['childs'][$_SESSION['j']]['comptes'] =  $calcul['Calcul']['comptes'];
					$_SESSION['j']++;
 
			} else {
				$_SESSION['newtab'][$_SESSION['k']]['nom'] = $calcul['Calcul']['nom'];
				$_SESSION['newtab'][$_SESSION['k']]['comptes'] =  $calcul['Calcul']['comptes'];
				$_SESSION['k']++;
			}
 
			if(!empty($calcul['children'])){
					['childs'] = array();
					$_SESSION['childs'] = 'yes';
					$this->Childscalc($calcul['children'], $_SESSION['newtab'], $_SESSION['childs']);
					unset($_SESSION['childs']);
 
			} else {
				$_SESSION['childs'] = 'no';
			}
		}
		return $_SESSION['newtab'];
	}
La logique ne me semble pas loin d'être bonne Mon problème vient du fait que je n'arrive pas à écrire correctement mon tableau... J'arrive à créer une premier niveaux pour les enfants et il faudrait que je puisse aller plus loins dans la récursivité... Si quelqu'un à une idée... Merci
flashnet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h00.


 
 
 
 
Partenaires

Hébergement Web