Veröffentlicht 7. Dezember 200816 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 200816 j von maffy
7. Dezember 200816 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 200816 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
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.