Array -> Vergleich -> Ändern

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

  • Array -> Vergleich -> Ändern

    Hallo (-:

    Ich habe ein Array mit verschiedenen Flugdaten + verschiedenen Anbietern.

    Beispiel:
    $flugdaten[] = array ('abflug' => "12:50",
    'ankunft' => "16:20",
    'preis' => "88,98",
    'airline' => "Dings Airline",
    'anbieter' => "Dingbums Tours");

    Allerdings haben einige den gleichen Flug - also Abflug und Ankunft sind gleich.
    Nun möchte ich aber nur den günstigeren im Array haben.

    Jetzt bin ich leider am verzweifeln, wie ich am besten danach suche, ob "abflug" und "ankunft" gleich ist - und wenn ja, dass dann der teure Flug im Array gelöscht wird.

    Vielleicht ist es ja auch bekloppt ein Array dafür zu benutzen?

    Wäre super froh über jeden Denkanstoß (-:

    Viele Grüße
    Zuletzt geändert von landman; 26.05.2011, 14:57.

  • #2
    Stehen die Daten in einer DB? Und wenn der Preis dort vom Typ float ist, dann kanst du direkt mit MIN arbeiten.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Zitat von Kropff Beitrag anzeigen
      Stehen die Daten in einer DB? Und wenn der Preis dort vom Typ float ist, dann kanst du direkt mit MIN arbeiten.

      Peter

      Hallo Peter,

      leider nein. Die Daten bekomme ich dynamisch per XML.

      VG

      Kommentar


      • #4
        So auf die Schnelle fällt mir das ein. Du nimmst Abflug und Ankunft als Array-Indizes. Also vom Prinzip her so:
        PHP-Code:
        $flugdaten["12:50"]["16:20"] = array ('preis' => "88,98", ...);
        $flugdaten["12:50"]["16:20"] = array ('preis' => "102,98", ...);
        $flugdaten["12:10"]["17:20"] = array (...); 
        Da du die Daten eh komplett durchlaufen musst, kannst du mit count die Anzahl der Einträge prüfen. Wenn größer 1, dann durchläufst du dieses Array und vergleichst die Preise.

        Peter

        EDIT:
        Zurück, das ist Tinnef. Kombinier beide in einem Index:
        PHP-Code:
        $flugdaten["12:50-16:20"

        Zuletzt geändert von Kropff; 26.05.2011, 15:09.
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Zitat von Kropff Beitrag anzeigen
          So auf die Schnelle fällt mir das ein. Du nimmst Abflug und Ankunft als Array-Indizes. Also vom Prinzip her so:
          PHP-Code:
          $flugdaten["12:50"]["16:20"] = array ('preis' => "88,98", ...);
          $flugdaten["12:50"]["16:20"] = array ('preis' => "102,98", ...);
          $flugdaten["12:10"]["17:20"] = array (...); 
          Da du die Daten eh komplett durchlaufen musst, kannst du mit count die Anzahl der Einträge prüfen. Wenn größer 1, dann durchläufst du dieses Array und vergleichst die Preise.

          Peter

          EDIT:
          Zurück, das ist Tinnef. Kombinier beide in einem Index:
          PHP-Code:
          $flugdaten["12:50-16:20"


          Der Ansatz sieht gut aus, allerdings weiß ich ja die Abflug und Ankunftszeit vorher nicht. Ich müsste erstmal irgendwie suchen, ob Ab.. & An.. doppelt ist und dann prüfen, welcher Preis der günstigere ist

          Kommentar


          • #6
            Zitat von landman Beitrag anzeigen
            Der Ansatz sieht gut aus, allerdings weiß ich ja die Abflug und Ankunftszeit vorher nicht.
            Du verarbeitest doch die XML-Daten, oder habe ich da was falsch verstanden? Und das machst du sicher Außerdem musst du die doch gar nicht kennen:
            PHP-Code:
            // Pseudocode
            $flugdaten[$abflug.'-'.$ankunft] ...
            // Oder z.B. mit SimpleXML
            $xml = new SimpleXMLElement($xmlstr);
            for (
            $i 0; ...) {
              
            $flugdaten[$xml->flug[$i]->['abflug'].'-'.$xml->flug[$i]->['ankunft']] = ...

            Daraus baust du dir dein Array und wertest das anschließend aus.

            Peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Klar! Ich glaube, ich verstehe jetzt was Du meinst.
              Ich versuche es direkt mal.

              Vielen Dank + Gruß (:

              Kommentar

              Lädt...
              X