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.
 

Neue Beiträge

Zurück