7. Dezember 200817 j Ich habe ein Array mit Buchungstext aus einer StarMoney CSV Datei und ein Array mit neuen Buchungstexten und Werten. Diese Funktion liest alle Buchungen zu einem Konto aus der CSV Datei ein und gibt diese in einer Tabelle aus. Jetzt möchte ich diese Daten mit meinen neuen Daten (über die Kontonummer) vergleichen und bei einem Treffer die orginalen Daten aus Array1 mit meinen angelegten Daten aus Array2 austauschen. function readkontobuchungen($file_dir,$daten_file,$konto){ print "<h2>Buchungen des Kontos anzeigen:</h2> "; print "<p> <a href=\"index.php\">CSV Datei auswählen</a> - <a href=\"index.php?do=content&file&file=".$daten_file."\">Buchungen anzeigen</a> </p> "; selectkonten($file_dir,$daten_file); // Selectbox für Konten print "<p><b>Datei:</b> $daten_file - <b>Konto:</b> ".$konto."</p>"; $handle = fopen(''.$file_dir.''.$daten_file.'','r') or die ('Kann die Datei nicht öffnen'); while ( ($data = fgetcsv ($handle, 1024, ";")) !== FALSE ) { // Einträge Zählen und erste Zeile nicht ausgeben $row++; if ($row == 1) { continue; } // #[0] => Betrag; $Betrag = $data[0]; // Betrag - > Komma in Punkt umwandeln für das Rechnen $data[0] = str_replace(",",".","$data[0]"); #[1] => Buchungstext $Buchungstext = $data[1]; #[3] => Buchungstag $Buchungstag = $data[3]; #[4] => Begünstigter/Absender - Bankleitzahl $Bankleitzahl = $data[4]; #[5] => Begünstigter/Absender - Kontonummer if($data[5] == ""){ $kontonummer ="Konto unbekannt"; } else { $kontonummer = $data[5]; } #[6] => Begünstigter/Absender - Name if($data[6] == ""){ $Absender ="Absender unbekannt"; } else { $Absender = $data[6]; } // Verwendungszweck $vwz ="".$data[26]."".$data[27]."".$data[28]." ".$data[29]."".$data[30]."".$data[31]."<br> ".$data[32]."".$data[33]." ".$data[34]."".$data[35]."".$data[36]."".$data[37]." ".$data[38]."".$data[39]." "; // Nur Buchungen des gleichen Kontos anzeigen if($konto == $data[5]){ // Buchungsdaten in ein Array schreiben wenn diese gleich sind $konto_daten[] ="<tr> <td>$Buchungstag</td> <td>$Absender</td> <td>$kontonummer</td> <td>$Betrag</td></tr>"; // Beträge in ein Array schreiben $summe[] = $data[0]; } } print"<table border='1' class=\"buchungen\" width='95%' cellspacing='2' cellpadding='2'>"; print "<thead>"; print "<tr>"; print "<th>Datum</th>"; print "<th>Buchung</th>"; print "<th>Konto</th>"; print "<th>Betrag</th>"; print "</tr>"; print "</thead>"; // Daten ausgeben foreach($konto_daten as $data){ print "$data"; } print"</table>"; $sum.= array_sum($summe); $saldo = number_format($sum, 2, ',', ''); print"<table border='1' width='95%'>"; print"<td colspann=\"3\" width='80%'> </td>"; print"<td style=\"background:#efefef;\" width='35%'><b>Summe: " . $saldo . " €</b></td>"; print "</tr>"; print"</table>"; fclose($handle); } Mfg Maffy Bearbeitet 7. Dezember 200817 j von maffy
7. Dezember 200817 j Es ist etwas umständlich für jedes Konto diese Daten per Hand anzulegen und dann so abzufragen. Ich habe das ersetzen der Daten jetzt so gemacht. if ($data[5] == "Kontonummer"){ $newvwz = str_replace (Kontonummer, 'Text zum ersetzen', $konto); $newabsender= str_replace (Kontonummer, 'Text zum ersetzen', $konto); $newkonto = str_replace (Kontonummer, 'Text zum ersetzen', $konto); } [/PHP] Ich möchte eine Datenbank oder ein Arraya abfragen wo diese Daten automatisch ersetzt werden.
7. Dezember 200817 j Ich lege Dir an Herz diese Befehle einmal zu lesen: PHP: file - Manual PHP: explode - Manual PHP: implode - Manual PHP: array_walk - Manual HTH Phil
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.