Bonjour à tous,

J'ai un CSV que j'arrive à lire et auquel je peux ajouter des lignes.

La forme du CSV :
UF,Libelle,Livraison
0159,IMPRIMERIE,LOGISTIQUE
0179,MAG SERV TECH,LOGISTIQUE

J'ajoute des lignes comme ceci :
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
 
<?php
	if(isset($_POST['ufAjout'])){
		$ufAjout=$_POST['ufAjout'];
	}
	if(isset($_POST['libelleAjout'])){
		$libelleAjout=$_POST['libelleAjout'];
	}
	if(isset($_POST['livraisonAjout'])){
		$livraisonAjout=$_POST['livraisonAjout'];
	}
 
	$fichier = "monFichier.csv";
	$fp = fopen($fichier, "a");
        $line = array($ufAjout, $libelleAjout, $livraisonAjout);
	fputcsv($fp, $line);
        fclose($fp);
	echo "<div class='align'><p>Modifications effectuées avec succès</p></div>";
?>
Je voudrais ajouter une condition qui fasse que, si l'utilisateur souhaite ajouter une UF mais qu'elle existe déjà, le libellé et la livraison soient remplacés pour cet UF.

J'ai essayé avec une boucle for :
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
 
<?php
if ($fichier<>false) {
	while (($data = fgetcsv($fp, 1000, ',')) !== FALSE){
		$data = array_map('utf8_encode', $data);
		$uf[] = $data[0];
		$libelle[] = $data[1];
		$livraison[] = $data[2];
 
	}
}
$count = file($fichier);
$nb_lignes = count($count);
for ($i=0; $i < $nb_lignes+1 ; $i++) { 
	if($data[0][$i]==$ufAjout){
		$line[$i] = array($ufAjout, $libelleAjout, $livraisonAjout);
		fputcsv($fp, $line[$i]);
	}
	else { 		
                $line = array($ufAjout, $libelleAjout, $livraisonAjout);
 		fputcsv($fp, $line); 	
       }
}
?>
Mais avant même de tester je me suis rendu compte que c'était stupide vu qu'au final je me retrouve avec 310 nouvelles lignes dans mon CSV

Du coup je pensais partir sur un foreach mais je ne vois pas trop comment faire...

Vers quoi pensez-vous que je devrais m'orienter ?