Bonjour,
Je mon présente mon contexte :
J'ai un fichier CSV que je parcours via une fonction "fgetcsv()". A partir des différentes informations obtenues (Nom, prénom, N° de matricule), j'enregistre celle ci dans un tableau de tableau (multidimensionnelle) avec les nom, prénom, N° de matricule et un user (créer à partir de la règle suivante : nom.prenom) et je créer aussi un autre tableau avec une donnée bien spécifique (des N° de matricule) qui me servira pour la suite de mon script.
Ensuite, je dédoublonne mon tableau de tableau à l'aide de mon tableau spécifique et de la fonction "array_unique()".
J'ai donc un tableau de tableau qui contienne des N° de matricule tous différents. Jusqu'ici, aucun problème !
Ma problématique :
Ensuite, j'ai remarqué dans mon tableau de tableau dédoublonné au niveau des N° de matricule, j'ai des homonymes (Même nom et prénom) et donc des users identique ! Et cela me pose problème pour la suite de mon projet car je dois avoir aussi des users unique ! Sauf qu'ici, il ne m'est pas possible de supprimer des users en doublons car ce sont quand même des personnes différentes.
Donc se que je recherche à faire est :
Si tu as des homonymes dans le tableau (même nom et prénom et donc même user), tu rends ces users unique en les modifiants (en suivant la règle suivante : ajouté un N° par exemple 1,2,3,4...)
Et donc comment faire ceci ?
Début de solution :
Résultat
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 <?php $array = array(); $array[] = array('Add','B','C'); $array[] = array('Bsq','R','Q'); $array[] = array('Cerf','G','L'); $array[] = array('Cf','B','L'); $array[] = array('Atd','B','C'); $array[] = array('Cf','Y','M'); $array[] = array('Add','U','X'); $i = 1; foreach($array as $cle => $valeur) { // Parcours du tableau où la valeur est à rechercher dans une colonne spécifique foreach($array as $key => $row) { if ($row[0] == $valeur[0] && $cle != $key) { $array[$key] = array($row[0].$i,$row[1],$row[2]); $i++; } } $i = 1; } echo '<pre>'; print_r($array); echo '</pre>'; ?>
C'est bien, cela fonctionne bien, sauf que je renomme tout les homonymes, alors que mois je ne veux pas renommé le 1er du couple, mais les suivants...
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
46
47
48
49
50
51 Array ( [0] => Array ( [0] => Add1 [1] => B [2] => C ) [1] => Array ( [0] => Bsq [1] => R [2] => Q ) [2] => Array ( [0] => Cerf [1] => G [2] => L ) [3] => Array ( [0] => Cf1 [1] => B [2] => L ) [4] => Array ( [0] => Atd [1] => B [2] => C ) [5] => Array ( [0] => Cf1 [1] => Y [2] => M ) [6] => Array ( [0] => Add1 [1] => U [2] => X ) )
Merci encore une fois pour vos lumières !
Partager