CSV Datei bearbeiten - Wert einer Spalte ändern

GI-Joe

Grünschnabel
Hallo,

ich versuche bei einer CSV aus Spalte 5 (enthält nummerische, ganze Zahlen) den Wert zu ändern (aller Zeilen). Anschließend soll das wieder abgespeichert werden. Zwei Probleme habe ich mit meinen Ansatz.
  1. entält der Wert beispielsweise 3 und 5 soll abgezogen werden so läuf es von der Theorie her ins Minus. Genau das soll es aber nicht, es soll dann auf 0 gesetzt werden.
  2. Speichert es die Datei nicht ab, ich vermute das ich dazu extra "fputcsv" benötige?!
PHP:
<?php
$anzahl = 5;
if (($handle = fopen("datei.csv", "w+")) !== FALSE) {
  while (($data = fgetcsv($handle, 10000, ";")) !== FALSE) {
     $ergebniss = $data[4] - $anzahl; //Spalte Nr 5 nummerisch 5 abziehen
     $data[4] = $ergebniss;
  }
  fclose($handle);
}
?>

Bin dankbar für Hilfe.
 
1. entält der Wert beispielsweise 3 und 5 soll abgezogen werden so läuf es von der Theorie her ins Minus. Genau das soll es aber nicht, es soll dann auf 0 gesetzt werden.
Überprüfe doch $ergebnis, ob es kleiner als 0 ist.
Wenn dies der Fall ist wird dann halt das Ergebnis auf 0 gesetzt.
PHP:
<?php
$anzahl = 5;
if (($handle = fopen("datei.csv", "w+")) !== FALSE) {
  while (($data = fgetcsv($handle, 10000, ";")) !== FALSE) {
     $ergebniss = $data[4] - $anzahl; //Spalte Nr 5 nummerisch 5 abziehen
     $data[4] = $ergebnis < 0 ? 0:$ergebnis;
  }
  fclose($handle);
}
?>

2. Speichert es die Datei nicht ab, ich vermute das ich dazu extra "fputcsv" benötige?!

Ja das geänderte Array muss zurück geschrieben werden und fputcsv ist da eine Variante.
 
Zurück