Bonjour,
A partir de deux tableaux possédant chacun une colonne comportant des valeurs de même type par exemple des dates au format "aaaa-mm-jj hh:mm:ss", je souhaite transformer l'un des deux tableaux $tab_cible de telle sorte que celui-ci possède uniquement les mêmes valeurs que $tab_source (avec éventuellement création/ajout des lignes de $tab_cible qui existent uniquement dans $tab_source).
Pour cela j'ai crée une fonction qui permet de modifier directement tab_cible en passant par la variable par référence.
Lorsque j'ai fini de coder la fonction, je m'aperçois d'un phénomène bizzard, la comparaison des valeur entre tab_cible et tab_source ne fonctionne pas puisque par exemple pour une date ! 2015-07-01 00:00:00 qui se trouve dans chacun des deux tableaux, php m'indique que cette valeur n'est pas identique dans les deux tableaux... et ne trouve aucune correspondance...
Bref voici le programme utilisé :
et la transformation fichier csv en tableau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 function jumeler_colonnes_tab($tab_source,&$tab_cible,$nom_colonne_source,$nom_colonne_cible){ foreach($tab_cible as $li1){ foreach($tab_source as $li2){ if(strrpos(utf8_encode($li2[$nom_colonne_source]),utf8_encode($li1[$nom_colonne_cible]))!==false){ echo "trouve<br>".$li1[$nom_colonne_cible]; }else { echo $li1[$nom_colonne_cible]." ".$li2[$nom_colonne_source]."<br>"; } } } }
Lorsque j'utilise cette fonction $tab_source provient d'un fichier csv converti en un tableau et tab_cible est un tableau construit directement par le programme php.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 function fichier_csv_vers_tab($nom_fichier,$option_tab){ $csv_tab=array(); $handle = @fopen($nom_fichier, "r"); if ($handle) { while (($buffer = fgets($handle, 4096)) !== false) { array_push($csv_tab,str_getcsv (trim($buffer," \t\n\r\0\x0B"))); } if (!feof($handle)) { echo "Erreur: fgets() a échoué\n"; } fclose($handle); } return $csv_tab; }
Ce code ne parvient pas à identifier les jumeaux des colonnes sources et cibles des 2 tableaux.
D'où peut venir le problème ? J'ai pensé à l'encodage de caractères mais visiblement non (utf8_encode() ) la présence de caractères spéciaux ?
Partager