Bonjour à tous,

Désolé par avance si je n'ai pas posté au bon endroit
Je dois manipuler un fichier csv pour le transformer en fichier XML.

Fichier d'entrée :
nom;prenom;email
dupont;marc;dupont@dupont.fr
dupont;marc;dupont@gmail.com
martin;rene;rene@gmail.com

mon fichier 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
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
<?php
  $fichier = 'test3.csv';
  $sortie = 'test3.xml';
 
  $contenu = fopen($fichier, 'r');
  $ecriture = fopen($sortie, 'w');
 
  $entete = fgetcsv($contenu, 1024, ";", '"');
 
  $debut = '<fichier>' . "\n";
  fwrite($ecriture, $debut);
 
 
 
  while (($tab = fgetcsv($contenu, 1024, ";", '"')) !== FALSE)
  {
 
    fwrite($ecriture, "\t" . '<personne>' . "\n");
    foreach ($tab as $cle => $valeur)
    {
      fwrite($ecriture, "\t\t" . '<' . $entete[$cle] . '>' . $valeur . '</' . $entete[$cle] . '>' . "\n");
 
    }
    fwrite($ecriture, "\t" . '</personne>' . "\n");
 
  }
 
 
 $fin = '</fichier>' . "\n";
  fwrite($ecriture, $fin);
 
  fclose($contenu);
  fclose($ecriture);
?>
Voilà l'affichage obtenu :
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
 
<fichier>
	<personne>
		<nom>dupont</nom>
		<prenom>marc</prenom>
		<email>dupont@dupont.fr</email>
	</personne>
	<personne>
		<nom>dupont</nom>
		<prenom>marc</prenom>
		<email>dupont@gmail.com</email>
	</personne>
	<personne>
		<nom>martin</nom>
		<prenom>rene</prenom>
		<email>rene@gmail.com</email>
	</personne>
</fichier>
Parfait me direz-vous !! Sauf que j'aimerais obtenir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<fichier>
	<personne>
		<nom>dupont</nom>
		<prenom>marc</prenom>
		<email>dupont@dupont.fr</email>
		<email>dupont@gmail.com</email>
	</personne>
	<personne>
		<nom>martin</nom>
		<prenom>rene</prenom>
		<email>rene@gmail.com</email>
	</personne>
</fichier>
Donc pour résumer, je souhaiterais fusionner/grouper les lignes avec un nom et un prénom identique

J'ai fais des tests avec array_unique, mais rien donc je me tourne vers vous.

Merci par avance