[PHP] Fusionner deux tableaux sur une clé
Résolu/Fermé
ragnarok
-
29 juin 2010 à 18:23
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 30 juin 2010 à 15:22
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 30 juin 2010 à 15:22
A voir également:
- Php fusionner 2 tableaux
- Fusionner 2 tableaux excel - Guide
- Comment fusionner 2 pdf - Guide
- Fusionner 2 cellules excel - Guide
- Tableaux croisés dynamiques - Guide
- 2 ecran pc - Guide
3 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
29 juin 2010 à 19:15
29 juin 2010 à 19:15
une solution ,je n'ai pas fait de test
<?php //on va lire les fihciers, exploder chaque ligne par rapport à ; //paris;A;15;2010-06-10 //et empiler ça dans un array multidimentions //array[ville][date][A ou B][valeur] //fonction php function empile_dans_array($array_fichier,$array_final,$lettre){ //empilage dans l'array for($i=0;$i<sizeof($array_fichier1);$i++){ //on parcours chaque ligne //explode de la ligne $array_ligne=explode(';',$array_fichier1[$i]); $array_final[$array_ligne[0]][$array_ligne[3]][$lettre]['valeur'] = $array_ligne[2]; } return $array_final; } $array_final=array(); //init array //lecture fichier 1 $array_fichier1=file('fichier1.txt'); //appel fonction $array_final = empile_dans_array($array_fichier1,$array_final,'A'); $array_fichier1=array(); //on vide //lecture fichier 2 $array_fichier2=file('fichier2.txt'); //appel fonction $array_final = empile_dans_array($array_fichier2,$array_final,'B'); $array_fichier2=array(); //on vide //calculs et affichage if(sizeof($array_final)>0){ echo '<table>'; echo '<tr><th>Ville</th><th>Valeur A</th><th>Valeur B</th><th>A-B</th><th>Date</th></tr>'; foreach($array_final as $ville=>$s_array1){ foreach($s_array1 as $date=>$s_array2){ echo '<tr><td>'.$ville.'</td><td>'.$s_array2['A'].'</td><td>'.$s_array2['B'].'</td><td>'.($s_array2['A'] - $s_array2['B']).'</td><td>'.$date.'</td></tr>'; } } echo '</table>'; } ?>
Dans la fonction, remplacer $array_fichier1 par $array_fichier
Et pour l'affichage, ajout de ['valeur']
echo '<tr><td>'.$ville.'</td><td>'.$s_array2['A']['valeur'].'</td><td>'.$s_array2['B']['valeur'].'</td><td>'.($s_array2['A']['valeur'] - $s_array2['B']['valeur]).'</td><td>'.$date.'</td></tr>';
Et ça roule impec' !!
Merci.
Et pour l'affichage, ajout de ['valeur']
echo '<tr><td>'.$ville.'</td><td>'.$s_array2['A']['valeur'].'</td><td>'.$s_array2['B']['valeur'].'</td><td>'.($s_array2['A']['valeur'] - $s_array2['B']['valeur]).'</td><td>'.$date.'</td></tr>';
Et ça roule impec' !!
Merci.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
30 juin 2010 à 15:22
30 juin 2010 à 15:22
c'est vrai que j'avais commencé avec le fichier1 et fait la fonction ensuite d'où l'erreur
tu as très bien vu tout ça, bravo !
tu as très bien vu tout ça, bravo !