Foren
Neue Beiträge
Foren durchsuchen
Was ist neu?
Neue Beiträge
Profilnachrichten
Online
Anmelden
Registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Neue Beiträge
Foren durchsuchen
Menü
Anmelden
Registrieren
App installieren
Installieren
Programmierung
PHP
CSV auslesen
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Auf Thema antworten
Beitrag
[QUOTE="Tom, post: 15079, member: 6212"] Hi Scatello. Benötige nochmals Deine Hilfe. Habe noch zu viele Daten. Es soll nur noch nach Modell ID und Modellname wie FLSTC oder FLSTCI und den Jahren sortiert/ausgelesen werden. [SIZE=3]<?php $filename = 'data.csv'; // Name der CSV-Datei $data = []; $finde = array('ABS', 'EFI'); // Gewisse Zeichen in ersetzten $ersetze = array('', ''); // CSV-Datei einlesen if (($handle = fopen($filename, 'r')) !== false) { while (($row = fgetcsv($handle, 1000, ';')) !== false) { $id = $row[0]; $modell = str_replace($finde, $ersetze,$row[10]); $modell = preg_replace('/\d+/', '', $modell); $modell = trim($modell, '"'); $jahr = (int)$row[14]; // Gruppieren nach ID und Modell $data[$id][$modell][] = $jahr; } fclose($handle); } // Auswertung und Ausgabe foreach ($data as $id => $modelle) { $ausgabe = [$id]; foreach ($modelle as $modell => $jahre) { sort($jahre); $von = min($jahre); $bis = max($jahre); $ausgabe[] = "$modell $von - $bis"; } echo implode(', ', $ausgabe) . "<br>"; } ?>[/SIZE] Inhalt der CSV: 9200062;FLSTC 1450;2003 9200062;FLSTC 1450;2000 9200062;FLSTC 1450;2001 9200062;FLSTC 1450;2002 9200062;FLSTC 1450;2004 9200062;FLSTC 1450;2005 9200062;FLSTC 1450 ABS;2005 9200062;FLSTC 1450 EFI;2005 9200062;FLSTC 1450;2006 9200062;FLSTC 1584;2008 9200062;FLSTC 1584;2009 9200062;FLSTC 1584;2007 9200062;FLSTC 1584;2010 9200062;FLSTC 1584;2011 9200062;FLSTC 1584 ABS;2011 9200062;FLSTC 1690;2013 9200062;FLSTC 1690;2012 9200062;FLSTC 1690 ABS;2012 9200062;FLSTC 1690 ABS;2013 9200062;FLSTC 1690 ABS;2016 9200062;FLSTC 1690 ABS;2015 9200062;FLSTC 1690 ABS;2014 9200062;FLSTC 1690 ABS;2017 9200062;FLSTC 1690 ABS;2013 9200062;FLSTCI 1450 EFI;2006 9200062;FLSTCI 1450 EFI;2005 9200062;FLSTCI 1450 EFI;2004 9200062;FLSTCI 1450 EFI;2003 9200062;FLSTCI 1450 EFI;2002 9200062;FLSTCI 1450 EFI;2001 4080057;FXD 1340;1998 4080057;FXD 1340;1997 4080057;FXD 1340;1996 4080057;FXD 1340;1995 4080057;FXD 1440;2001 4080057;FXD 1440;2000 4080057;FXD 1440 EFI;2000 4080057;FXD 1440 ABS;2000 4080057;FXD 1440;2003 4080057;FXD 1440;2002 4080057;FXD 1440;1999 4080057;FXD 1440;2004 4080057;FXD 1440;2005 4080219;FXDC 1340;1998 4080219;FXDC 1340;1997 4080219;FXDC 1340;1996 4080219;FXDC 1340;1995 4080219;FXDL 1440;2001 4080219;FXDL 1440;2000 4080219;FXDL 1440;2003 4080219;FXDL 1440;2002 4080219;FXDL 1440;1999 4080219;FXDL 1440;2004 4080219;FXDL 1440;2005 Ergebnis: 9200062, [B]FLSTC 2000 - 2013[/B], [B]FLSTC 2005 - 2017[/B], FLSTCI 2001 - 2006 4080057, FXD 1995 - 2005, FXD 2000 - 2000 4080219, FXDC 1995 - 1998, FXDL 1999 - 2005 Als Ergebnis bräuchte ich aber: 9200062, [B]FLSTC 2000 - 2017[/B], FLSTCI 2001 - 2006 4080057, FXD 1995 - 2005 4080219, FXDC 1995 - 2005 Also sollen die Zahlen und Bezeichnungen wie ABS, EFI ignoriert werden. Habe es wie folgt versucht, haut aber nicht hin: $finde = array("ABS", "EFI"); // Gewisse Zeichen in ersetzten $ersetze = array("", ""); $id = $row[0]; $modell = str_replace($finde, $ersetze,$row[10]); $modell = preg_replace('/\d+/', '', $modell); $modell = trim($modell, '"'); $jahr = (int)$row[14]; [/QUOTE]
Zitate
Authentifizierung
Antworten
Programmierung
PHP
CSV auslesen
Oben
Unten