cr: nach inhalten suchen und doppelte löschen

hallo,

ich habe eine txt in der folgendes steht:

2008|Kellernacht|7382957325.jpg|
2008|Kellernacht|5725613896.jpg|
2008|Dorffest|3748913589.jpg|
2007|Kellernacht|252363316.jpg|

nun möchte ich, dass php alle einträge eins jahres (z.b. 2008) und die dazugehörigen veranstaltungen selektiert.

in diesem beispiel sollte

2008 -> Kellernacht
2008 -> Dorffest

rauskommen. (also das doppelte kellernacht eliminiert werden)

dann soll php automatisch alle bilder zu kellernacht ausgeben, dann erst alle bilder zu dorffest.

könnt ihr mir ein paar tips zu dem (doppelte eliminieren) und dem sortieren geben?

danke

  1. könnt ihr mir ein paar tips zu dem (doppelte eliminieren) und dem sortieren geben?

    Du schreibst alle Einträge in ein Array, schneidest vorher aber den Bildnamen ab. Anschliessend jagst du das Array durch array_unique

  2. Hallo,

    in diesem beispiel sollte

    2008 -> Kellernacht
    2008 -> Dorffest

    rauskommen. (also das doppelte kellernacht eliminiert werden)

    Schau dir mal diese Funktionen an:
    http://de3.php.net/manual/de/function.explode.php bzw. http://de3.php.net/manual/de/function.fgetcsv.php
    http://de3.php.net/manual/de/function.array-key-exists.php

    könnt ihr mir ein paar tips zu dem (doppelte eliminieren) und dem sortieren geben?

    Wieso sortieren?

    Gruß

  3. Hello,

    ich habe eine txt in der folgendes steht:

    Das ist grammatikalisch falsch. Es heißt: "Ich habe einen Text, in dem folgendes steht"
    oder "Ich habe eine Text-Datei, in der folgendes steht"

    Wenn es eine Datei ist, dann schreib das bitte auch so. Die schlampige "Sprechweise" ist hier schon lange nicht mehr erwünscht und führt auch generell meistens nur zu Missverständnissen.

    2008|Kellernacht|7382957325.jpg|
    2008|Kellernacht|5725613896.jpg|
    2008|Dorffest|3748913589.jpg|
    2007|Kellernacht|252363316.jpg|

    nun möchte ich, dass php alle einträge eins jahres (z.b. 2008) und die dazugehörigen veranstaltungen selektiert.

    Das ist nicht weiter schwer. Schau Dir die Funktion fgetcsv() an.
    http://www.php.net/manual/en/function.fgetcsv.php

    Wenn Du eine Schleife aufbaust, die nur die für Dich relevanten Zeilen aus der Datei extrahiert, kannst Du diese dann weiterverarbeiten.

    Datei öffnen und sperren -> $fh

    $max_record_size = 4096;
        $columns = 4;            ## Anzahl der Spalten. Deine letzte Spalte ist leer!
        $select = '2008';
        $_file = array();
        $_record = array();

    while($_record = fgetcsv($fh, $max_record_size, "|")
        {
            if (count($_record) == $columns)      ## Datensatz auf Richtigkeit prüfen
            {
                if($_record[0] == $select)        ## Datensatz auf Selektionskriterium prüfen
                {
                    $_file = $_record;
                }
            }
        }

    Datei schließen

    nur zum Testen

    echo "<pre>\r\n";
        echo htmlspecialchars(print_r($_file,1));
        echo "</pre>\r\n";

    Ende der Testausgabe

    Ein harzliches Glückauf z. Zt. aus Syburg

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de