Array -> Vergleich -> Ändern

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Last edited by landman; 26-05-2011, 13: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

    Comment


    • #3
      Originally posted by Kropff View Post
      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

      Comment


      • #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"

        Last edited by Kropff; 26-05-2011, 14:09.
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Comment


        • #5
          Originally posted by Kropff View Post
          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

          Comment


          • #6
            Originally posted by landman View Post
            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

            Comment


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

              Vielen Dank + Gruß (:

              Comment

              Working...
              X