Bonjour,

J'ai un petit soucis concernant l'utilisation des tableaux.

Voici le code en question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
$qcs = "
	SELECT
	C.id as cid,
	C.order as corder,
	C.name as cname
		FROM ci_categories AS C
		ORDER BY `corder` ASC
";
$categories = $this->db->query($qcs);
$cs = $categories->result_array();
 
echo 'Categories';
$this->print_pre($cs);
 
 
foreach ($cs as $c){
	$cid = $c['cid'];
 
	$qps = "
		SELECT
		P.id AS pid,
		P.name AS pname,
		P.price AS pprice
			FROM ci_products AS P
			WHERE $cid = P.category_id
			ORDER BY	pprice ASC
	";
	$products = $this->db->query($qps);
	$ps = $products->result_array();
	$c['cproducts']=$ps;
 
	echo 'Categories et produits';
	$this->print_pre($c);
 
	foreach ($ps as $p){
		$pid = $p['pid'];
		$qis = "
			SELECT
			I.name AS ingredient_name
				FROM ci_ingredients AS I
					LEFT JOIN ci_recipies as R
					ON (I.id = R.ingredient_id)
				WHERE (R.product_id = $pid)
				ORDER BY ingredient_name ASC
		";
		$ingredients = $this->db->query($qis);
		$is = $ingredients->result_array();
		$p['pingredients'] = $is;
 
		echo 'produits et ingredients';
		$this->print_pre($p);
	}
}
Et voici le résultat obtenu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
Categories
 
Array
(
    [0] => Array
        (
            [cid] => 5
            [corder] => 1
            [cname] => 1st category
        )
 
    [1] => Array
        (
            [cid] => 7
            [corder] => 2
            [cname] => 2nd category
        )
 
)
 
 
Categories et produits
 
Array
(
    [cid] => 5
    [corder] => 1
    [cname] => 1st category
    [cproducts] => Array
        (
            [0] => Array
                (
                    [pid] => 1
                    [pname] => Azer
                    [pprice] => 13.00
                )
 
            [1] => Array
                (
                    [pid] => 2
                    [pname] => Poimlk
                    [pprice] => 25.50
                )
 
        )
 
)
 
 
produits et ingredients
 
Array
(
    [pid] => 1
    [pname] => Azer
    [pprice] => 13.00
    [pingredients] => Array
        (
            [0] => Array
                (
                    [ingredient_name] => D
                )
 
            [1] => Array
                (
                    [ingredient_name] => F
                )
 
        )
 
)
 
 
produits et ingredients
 
Array
(
    [pid] => 2
    [pname] => Poimlk
    [pprice] => 25.50
    [pingredients] => Array
        (
            [0] => Array
                (
                    [ingredient_name] => A
                )
 
            [1] => Array
                (
                    [ingredient_name] => D
                )
 
            [2] => Array
                (
                    [ingredient_name] => H
                )
 
            [3] => Array
                (
                    [ingredient_name] => R
                )
 
        )
 
)
 
 
Categories et produits
 
Array
(
    [cid] => 7
    [corder] => 2
    [cname] => 2nd category
    [cproducts] => Array
        (
            [0] => Array
                (
                    [pid] => 3
                    [pname] => 3rd recipe
                    [pprice] => 16.25
                )
 
        )
 
)
 
 
produits et ingredients
 
Array
(
    [pid] => 3
    [pname] => 3rd recipe
    [pprice] => 16.25
    [pingredients] => Array
        (
        )
 
)
Mon soucis du moment :
Comment faire pour merger tous ces tableaux en un seul gros tableau comprenant toutes les informations imbriquées ?
En l'occurence, pour le moment, j'arrive à récupérer les catégories, les produits, les ingrédients, mais je n'arrive pas à faire un gros tableau de tout ça.

Merci d'avance pour toute aide.

PS : la fonction print_pre() est juste une fonction de mise en page des tableaux (éduivalent de print_r() mais mis en page pour faciliter la lecture)