Bonjour à tous,
J'ai besoin de votre aide sur un problème, qui je suis sur est bidon, mais où je commence à m'agacer sur le problème que je ne parvient pas à régler.
Donc j'ai besoin pour le traitement de deux fichiers CSV de remettre en ordre des informations.
Le premier contient des valeurs rattachées à différentes section, bien évidement dans le désordre.
Le second fichier contient les valeurs de début de chaque section qui me permettront de rattacher les suivantes.
Après avoir récupérer le début de ma section, je stock les infos dans mon tableau qui me permettra de créer mon fichier CSV final et je lance ma fonction récursive qui va me ranger mes valeurs pour chaque section.
Ma fonction fait bien son job et avant d'effectuer mon "return" lorsque je fait un "print_r" de mon tableau j'obtient bien mes valeurs classés.
Maintenant quand je fais un "print_r" de la variable qui récupère le "return" de ma fonction celle ci n'ai rien d'autre qu'un tableau vide
Voici mes bouts de code.
Voici le code la fonction
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 // Parcourt des première lignes présente dans le fichier 2 for( $i .... ) { /* * STOCKAGE DES INFOS DE LA PREMIERE LIGNE DANS UN TABLEAU */ $tab_resultat_final[ $section_parcouru_nacc ][ 'val_accrochage' ][] = $tab_resultat_donnees_nacc_pre_trait[ $section_parcouru_nacc ][ 'val_accrochage' ][ $cle_premiere_section ]; $tab_resultat_final[ $section_parcouru_nacc ][ 'val_chaussee' ][] = $tab_resultat_donnees_nacc_pre_trait[ $section_parcouru_nacc ][ 'val_chaussee' ][ $cle_premiere_section ]; $tab_resultat_final[ $section_parcouru_nacc ][ 'val_dates_mesures' ][] = $tab_resultat_donnees_nacc_pre_trait[ $section_parcouru_nacc ][ 'val_dates_mesures' ][ $cle_premiere_section ]; $tab_resultat_final[ $section_parcouru_nacc ][ 'val_retroreflexion' ][] = $tab_resultat_donnees_nacc_pre_trait[ $section_parcouru_nacc ][ 'val_retroreflexion' ][ $cle_premiere_section ]; $tab_resultat_final[ $section_parcouru_nacc ][ 'val_evenement' ][] = $tab_resultat_donnees_nacc_pre_trait[ $section_parcouru_nacc ][ 'val_evenement' ][ $cle_premiere_section ]; $tab_resultat_final[ $section_parcouru_nacc ][ 'val_sens_mesures' ][] = $tab_resultat_donnees_nacc_pre_trait[ $section_parcouru_nacc ][ 'val_sens_mesures' ][ $cle_premiere_section ]; $tab_resultat_final[ $section_parcouru_nacc ][ 'val_ecod' ][] = $tab_resultat_donnees_nacc_pre_trait[ $section_parcouru_nacc ][ 'val_ecod' ][ $cle_premiere_section ]; $tab_resultat_final[ $section_parcouru_nacc ][ 'val_ecof' ][] = $tab_resultat_donnees_nacc_pre_trait[ $section_parcouru_nacc ][ 'val_ecof' ][ $cle_premiere_section ]; $tab_resultat_final[ $section_parcouru_nacc ][ 'val_ecoc' ][] = $tab_resultat_donnees_nacc_pre_trait[ $section_parcouru_nacc ][ 'val_ecoc' ][ $cle_premiere_section ]; $tab_resultat_final[ $section_parcouru_nacc ][ 'val_axe' ][] = $section_parcouru_nacc; $tab_resultat_final[ $section_parcouru_nacc ][ 'val_plod' ][] = $val_plod_premiere_ligne; $tab_resultat_final[ $section_parcouru_nacc ][ 'val_absd' ][] = $val_absd_premiere_ligne; $tab_resultat_final[ $section_parcouru_nacc ][ 'val_plof' ][] = $val_plod_seconde_ligne; $tab_resultat_final[ $section_parcouru_nacc ][ 'val_absf' ][] = $val_absd_seconde_ligne; /* * STOCKAGE DES INFOS DES LIGNES SUIVANTE VIA LE FICHIER ACC */ $tab_resultat_a_renvoyer = array(); $tab_re = test_recursive( $section_parcouru_nacc, $val_ecof_premiere_ligne, $tab_resultat_donnees_acc_pre_trait, $tab_resultat_a_renvoyer ); echo "<pre>"; print_r( $tab_re ); echo "</pre>"; }
Vous remerciant par avance et dans l'attente de votre retour libérateur
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
39
40
41
42
43
44
45 /* * FONCTION PERMETTANT DE REMETTRE DANS L'ORDRE LE RESTE DE LA SECTION */ function test_recursive( $section_parcouru, $val_ecof_ligne_a_analyser, $tab_resultat_donnees_acc_pre_trait, $tab_mon_resultat ) { /* * SI la prochaine mesure de la section en cours est dans le fichier ACC * ALORS on a pas terminé de trier les mesures donc on continu */ if( in_array( $val_ecof_ligne_a_analyser, $tab_resultat_donnees_acc_pre_trait[ $section_parcouru ][ 'val_ecod' ] ) ) { // Récupération de la clé de la nouvelle valeur $cle_nouvelle_valeur = array_search( $val_ecof_ligne_a_analyser, $tab_resultat_donnees_acc_pre_trait[ $section_parcouru ][ 'val_ecod' ] ); // Ajout des valeurs de la ligne dans le tableau de résultat final $tab_mon_resultat[ $section_parcouru ][ 'val_axe' ][] = $section_parcouru; $tab_mon_resultat[ $section_parcouru ][ 'val_accrochage' ][] = $tab_resultat_donnees_acc_pre_trait[ $section_parcouru ][ 'val_accrochage' ][ $cle_nouvelle_valeur ]; $tab_mon_resultat[ $section_parcouru ][ 'val_chaussee' ][] = $tab_resultat_donnees_acc_pre_trait[ $section_parcouru ][ 'val_chaussee' ][ $cle_nouvelle_valeur ]; $tab_mon_resultat[ $section_parcouru ][ 'val_dates_mesures' ][] = $tab_resultat_donnees_acc_pre_trait[ $section_parcouru ][ 'val_dates_mesures' ][ $cle_nouvelle_valeur ]; $tab_mon_resultat[ $section_parcouru ][ 'val_retroreflexion'][] = $tab_resultat_donnees_acc_pre_trait[ $section_parcouru ][ 'val_retroreflexion' ][ $cle_nouvelle_valeur ]; $tab_mon_resultat[ $section_parcouru ][ 'val_evenement' ][] = $tab_resultat_donnees_acc_pre_trait[ $section_parcouru ][ 'val_evenement' ][ $cle_nouvelle_valeur ]; $tab_mon_resultat[ $section_parcouru ][ 'val_sens_mesures' ][] = $tab_resultat_donnees_acc_pre_trait[ $section_parcouru ][ 'val_sens_mesures' ][ $cle_nouvelle_valeur ]; $tab_mon_resultat[ $section_parcouru ][ 'val_plod' ][] = $tab_resultat_donnees_acc_pre_trait[ $section_parcouru ][ 'val_plod' ][ $cle_nouvelle_valeur ]; $tab_mon_resultat[ $section_parcouru ][ 'val_absd' ][] = $tab_resultat_donnees_acc_pre_trait[ $section_parcouru ][ 'val_absd' ][ $cle_nouvelle_valeur ]; $tab_mon_resultat[ $section_parcouru ][ 'val_plof' ][] = $tab_resultat_donnees_acc_pre_trait[ $section_parcouru ][ 'val_plof' ][ $cle_nouvelle_valeur ]; $tab_mon_resultat[ $section_parcouru ][ 'val_absf' ][] = $tab_resultat_donnees_acc_pre_trait[ $section_parcouru ][ 'val_absf' ][ $cle_nouvelle_valeur ]; $tab_mon_resultat[ $section_parcouru ][ 'val_ecod' ][] = $tab_resultat_donnees_acc_pre_trait[ $section_parcouru ][ 'val_ecod' ][ $cle_nouvelle_valeur ]; $tab_mon_resultat[ $section_parcouru ][ 'val_ecof' ][] = $tab_resultat_donnees_acc_pre_trait[ $section_parcouru ][ 'val_ecof' ][ $cle_nouvelle_valeur ]; $tab_mon_resultat[ $section_parcouru ][ 'val_ecoc' ][] = $tab_resultat_donnees_acc_pre_trait[ $section_parcouru ][ 'val_ecoc' ][ $cle_nouvelle_valeur ]; $val_ecof_ligne = $tab_resultat_donnees_acc_pre_trait[ $section_parcouru ][ 'val_ecof' ][ $cle_nouvelle_valeur ]; test_recursive( $section_parcouru, $val_ecof_ligne, $tab_resultat_donnees_acc_pre_trait, $tab_mon_resultat); } /* * SINON on a terminé de trier les mesures de la section * ALORS on retourne le tableau de résultat */ else { $tab_result_a_renvoyer = array(); $tab_result_a_renvoyer = $tab_mon_resultat; return $tab_result_a_renvoyer; } }
Partager