Fusion de tableau

Eléphanteau du PHP | 34 Messages

15 juin 2006, 14:05

Bonjour à tous,
Je cherche à fusionner 2 tableaux en comparant 1 champ dans chacun d'entre eux (timestamp)
Explication : Depuis postgreSQL je recupere 2 tableaux contenant chacun un champ date et une valeur associée

Tableau 1
2000-01-01 | T1v1
2000-01-02 | T1v2
2000-01-03 | T1v3
2000-01-04 - T1v4
2000-01-05 - T1v5

Tableau 2
2000-01-02 | T2v1
2000-01-04 | T2v2
2000-01-05 - T2v3

Et je voudrai associé les deux pour obtenir qlq chose comme :

2000-01-01 | T1v1 | null
2000-01-02 | T1v2 | T2v1
2000-01-03 | T1v3 | null
2000-01-04 | T1v4 | T2v2
2000-01-05 | T1v5 | T2v3

Quelle méthode peut on utiliser :
a- une fonction php que je ne connais pas
b- des boucles qui parcourent les tableaux pour en crée un 3eme (un peu long)

Voila je suis preneur de toutes information à ce sujet
Je cherche également côté SQL mais sans succés pour le moment
Merci d'avance
Jérôme

Eléphant du PHP | 140 Messages

15 juin 2006, 15:11

A priori le plus simple c'est le SQL (avec des jointures / JOIN sur les tables concernees).

Eléphanteau du PHP | 34 Messages

15 juin 2006, 15:16

C'est vrai,
on m'a fourni la réponse en SQL

Code : Tout sélectionner

SELECT table1.date_p,table1.valeur,table2.valeur FROM table1 LEFT JOIN table2 ON table1.date_p=table2.date_p WHERE table1.date_p BETWEEN '2000-01-01' AND '2000-01-05'
Je la donne ici quand même ca peut servir même si ce n'est pas du PHP
Il serait interessant de savoir s'il existe une solution simple en PHP pour le jour ou les tableaux ne viennent pas de requetes SQL
Merci

Eléphant du PHP | 140 Messages

15 juin 2006, 15:17

Il serait interessant de savoir s'il existe une solution simple en PHP pour le jour ou les tableaux ne viennent pas de requetes SQL
Une simple boucle for devrait faire ton bonheur :)

Mammouth du PHP | 601 Messages

15 juin 2006, 15:41

tu as essayer de tout récupérer et d'associé les tableaux avec array_merge();
C'est une piste
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"