| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

26-05-2011, 14:50
|
|
landman
Registrierter Benutzer
|
|
Registriert seit: May 2011
Ort: Berlin
Beiträge: 6
|
|
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
Geändert von landman (26-05-2011 um 14:57 Uhr)
|

26-05-2011, 14:52
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
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
|

26-05-2011, 14:54
|
|
landman
Registrierter Benutzer
|
|
Registriert seit: May 2011
Ort: Berlin
Beiträge: 6
|
|
Zitat:
Zitat von Kropff
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
|

26-05-2011, 15:07
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
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"]
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Geändert von Kropff (26-05-2011 um 15:09 Uhr)
|

26-05-2011, 16:05
|
|
landman
Registrierter Benutzer
|
|
Registriert seit: May 2011
Ort: Berlin
Beiträge: 6
|
|
Zitat:
Zitat von Kropff
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
|

26-05-2011, 16:14
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
Zitat:
Zitat von landman
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
|

26-05-2011, 16:18
|
|
landman
Registrierter Benutzer
|
|
Registriert seit: May 2011
Ort: Berlin
Beiträge: 6
|
|
Klar! Ich glaube, ich verstehe jetzt was Du meinst.
Ich versuche es direkt mal.
Vielen Dank + Gruß (:
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|