PHP mehrdimensionales array durchsuchen

Duergy

Blogger / Progger
ID: 334432
L
20 November 2008
818
16
Ein wunderschönen Sonntag Gemeinde,
ich sitze gerade an einer Sache wo ich einen Denkanstoß bräuchte.

Ich habe im Prinzip 2 Arrays
Das 1. ist eine Warenkorb Session
Die 2. ist das Array mit allen Artikeln.

Ich möchte nun überprüfen, ob der Preis in der Warenkorb Session Manipuliert wurde.

Artikelliste Array
PHP:
Array
(
    [0] => Array
        (
            [artnr] => 111111
            [preis] => 49.95
        )

    [1] => Array
        (
            [artnr] => 121212
            [preis] => 5.95
        )
)

Warenkorb Array
PHP:
Array
(
    [0] => Array
        (
            [id] => 111111
            [price] => 49.95
            [qty] => 4
            [subtotal] => 199.8
        )

    [1] => Array
        (
            [id] => 121212
            [price] => 5.95
            [qty] => 3
            [subtotal] => 17.85
        )
)

Also im Prinzip müsste ich ja nur den Warenkorb durch einer foreach()-schleife schicken wo dann anhand der "artnr" abgeglichen wird ob "preis" und "price" Identisch sind.

Ich hoffe ihr könnt mir helfen.

Danke
 
Also im Prinzip müsste ich ja nur den Warenkorb durch einer foreach()-schleife schicken wo dann anhand der "artnr" abgeglichen wird ob "preis" und "price" Identisch sind.

und wo ist nun das Problem?
Einmal den Warenkorb durchlaufen, für jeden Artikel im Warenkorb einmal die Artikelliste durchlaufen bis die Artikelnummern übereinstimmen und dann den Preis vergleichen. Ein 5 Zeiler.
 
Ja das Prinzip erwähnte ich ja
PHP:
foreach($warenkorb as $artikel){
if($artikel['id'] == ???){
//mach nichts
}
else{
//mach etwas
}
}
 
PHP:
foreach($warenkorb as $artikel){
  if($artikel['id'] != ???){
    //mach etwas
  }
}

Und warum nicht so? ;)
Man macht kein if mit einem leeren Anweisungsblock und dann ein else ... dreh halt die Bedingung um. Ist doch sinnlos oder seh ich das falsch? :biggrin:
 
ne da hast du schon recht die Frage ist, was mache ich bei "???" in_array? array_search ?
 
ne da hast du schon recht die Frage ist, was mache ich bei "???" in_array? array_search ?
Wieso nochmal suchen? Gibt dir jemand einen Artikel im Warenkorb, prüfst du, ob sich der Preis geändert hat. Ich sehe da keine weitere Suche mehr, sondern einzig eine Iteration durch den Warenkorb.

Sinnvoll wäre eine Indizierung der Artikel nach Primärschlüssel; hier wohl der Artikelnummer. Bevor du also an dein Vorhaben gehst, bau deine Datenstruktur "Artikelliste" so um, dass du per Artikelnummer als Array-Index an den Preis kommst.
 
Warum speicherst du die Preise überhaupt in der Session? Normalerweise würde ich in der Session nur eine Artikelnummer und eine Anzahl erwarten...