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é :
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>";
				}
			}
		}
           }
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
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;
	}
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.
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 ?