Bonjour,
j'ai cherché des solutions sur google et je ne suis pas sûr d'avoir trouvé ce qu'il me fallait, alors je préfère poser une question directe.
J'ai deux tableaux qui sont des résultats SQL à index numérique, ce qui donne une structure :
Je cherche donc à joindre ces deux tableaux, la condition se faisant sur le [ID] : si array1[n][ID] == array2[n2][ID] alors merge array2 à array1.
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 $array1 { [0]=>Array { [ID] => ... [nom] => ... [blabla] =>... } [1]=>Array { [ID] => ... [nom] => ... [blabla] =>... } [n]=>Array { [ID] => ... [nom] => ... [blabla] =>... } } $array2 { [0]=>Array { [ID] => ... [bimbim] => ... [boumboum] =>... } [1]=>Array { [ID] => ... [bimbim] => ... [boumboum] =>... } [n]=>Array { [ID] => ... [bimbim] => ... [boumboum] =>... } }
J'ai regardé array_merge_recursive, mais soit je n'ai pas compris son fonctionnement, soit son fonctionnement n'est pas adapté (ce qui revient à dire que je n'ai pas compris son fonctionnement)
J'ai donc fait ma propre boucle, mais je pense quand même qu'il est possible de faire quelque chose de plus propre.
Ici pour chaque élément du premier tableau, je regarde tous les éléments du deuxième tableau, et si la condition est satisfaite alors je joins les deux tableaux. Ca fonctionne. Mais est ce que c'est optimal? c'est pour ça que je me tourne vers vous.
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 foreach ($array1 AS $a1){ foreach ($array2 AS $a2){ if($a1['ID'] == $a2['ID']){ $a1 = array_merge($a1,$a2); } } }
Partager