Ankündigung

Einklappen
Keine Ankündigung bisher.

Komplette CSV-Datei in Array geben und prüfen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Komplette CSV-Datei in Array geben und prüfen

    Hallo zusammen,

    ich arbeite momentan an einem Skript, welches eine CSV-Datei (genauer einen Speiseplan) ausgeben soll. Die eigentlich Ausgabe inkl. Tabelle ist mir bereits gelungen, allerdings hat die CSV-Datei folgendes Problem: sie enthält Einträge, die sich in Teilen überschneiden, ein Beispiel zum Verständnis:



    Ort1 Datum1 Essen1
    Ort2 Datum1 Essen1
    Ort3 Datum1 Essen1



    Ich möchte dann natürlich nicht für ein Gericht 3 Zeilen ausgeben, sondern wiefolgt:


    Ort1,2,3 Datum1 Essen1


    Meine Überlegung wäre jetzt, die gesamte CSV zeilenweise einzulesen und dann jeweils vor der Ausgabe einer jeden Tabellen-Zeile das gesamte Array zu prüfen. Ist die Überlegung so richtig? Und was wäre ein möglicher Ansatz?

    Hier der Code zum bisherigen Skript:



    PHP-Code:
    <?php
    print <<< HERE
    <table class="table-fill">
    <thead>
    <tr>
    <th class="text-left">Nr.</th>
    <th class="text-left">Datum</th>
    <th class="text-left">Einrichtung</th>
    <th class="text-left">Menü</th>
    <th class="text-left">Preis Studierende</th>
    <th class="text-left">Preis Gäste</th>
    </tr>
    </thead>
    HERE;
    $data file("speiseplan.csv");
    $i 1;
    foreach (
    $data as $line){
    $lineArray explode(";"$line);
    list(
    $proddatum$prodid$ortid$frei3$ausgabeneu$ausgabe2$preiss$preisb$preisg$kennz$allergene) = $lineArray;
    if (
    $ortid != "340") {
    if (
    $ausgabeneu != '"leer"') {
    // print <<< HERE
    echo <<<END
    <tr>
    <td class="text-left"><center>
    $i</center></td>
    <td class="text-left">
    $proddatum</td>
    <td class="text-left">
    END;
    if (
    $ortid == "1" ){
    echo 
    "Ort1";
    }
    elseif (
    $ortid == "3") {
    echo 
    "Mensa Ort3";
    }
    else {
    echo 
    $ortid;
    }
    echo <<<END2
    </td>
    <td class="text-left" width="60%">
    $ausgabeneu</td>
    <td class="text-left"><center>
    $preiss</center></td>
    <td class="text-left"><center>
    $preisg</center></td>
    </tr>
    END2;
    $i ++;
    //HERE;
    // end foreach
    }
    }
    //print the bottom of the table
    print "</table> \n";
    ?>


    Vielen Dank!

  • #2
    Kannst hier den Gruppenbruch anwenden: http://php-de.github.io/jumpto/grupp...eichskriterium

    Kommentar

    Lädt...
    X