array_search ..bin am Ende!!

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

  • array_search ..bin am Ende!!

    Hallo Leute!
    Habe ein Problem mit dem array_search, also:
    Im Katalog lassen sich die Artikel zum Warenkorb hinzufügen, dazu habe ich in meiner Session 2 Array registriert $Warenkorb und $Anzahl (habe die mehrdimensionalen nicht ganz verstanden) und es funktioniert auch gut.
    Nach dem man "Hinzufügen" angeklickt hat, wird per URL die Artiekelnr an eine Datei weitergegeben und ausgewertet. Ist die Artikelnr bereits vorhanden wird nur die Anzahl um eins erhöht, wenn nicht wird neue Position im Array angelegt. Wenn ich mein $Warenkorb-Array aber dursuchen möchte, findet array_search aber, NUR Artikelnr die Indexnr 1 oderr höher haben, die erste Position wird ignoriert.. Warum????

    Ausschnitt aus dem Code:
    $Artikelnr wird per URL übergeben, $Warenkorb und $Korbanzahl sind die Arrays.
    "
    if ($x=array_search($Artikelnr, $Warenkorb)){
    echo "Artikelnr: ".$Artikelnr." gefunden!<br>";
    $Korbanzahl[$x]=$Korbanzahl[$x]+1;}
    "

    Sowas kommt daraus:
    "
    Es enthält: 4
    Pos: 0 Artikelnr: 2 Menge: 1
    Pos: 1 Artikelnr: 1 Menge: 2
    Pos: 2 Artikelnr: 3 Menge: 1
    Pos: 3 Artikelnr: 2 Menge: 1
    "
    Artikelnr 2 kommt zwei mal vor, wird aber nicht erkannt und neu angelegt.
    Wo ist der Fehler??

    Gruß

  • #2
    die erste position wird nicht ignoriert, du kriegst sie ja ausgegeben, aber woher soll php denn wissen, dass das element 0 und das element 3 zusammengehören?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      du mußt die if Abfrage ändern.
      array_search gibt dir eine 0 zurück (richtig), aber das
      fällt nicht in deine if-Bedingung

      so:
      PHP-Code:
      if (($x=array_search($Artikelnr$Warenkorb))!==false){
      // ...

      TBT

      Die zwei wichtigsten Regeln für eine berufliche Karriere:
      1. Verrate niemals alles was du weißt!


      PHP 2 AllPatrizier II Browsergame

      Kommentar


      • #4
        Danke für die schnelle Antwort!
        Weil als Suchwort die Artikelnr steht und die kommt da doch an der ersten Stelle vor, Pos1 Artikelnr 1 hat er richtig erkannt und um eins erhöht, warum nicht die Indexnr 0 ??

        Kommentar


        • #5
          er findet ja auch die 1. Position mit index 0 !
          wenn er nichts findet gibt er die ein false

          if($x=0)

          ist das selbe wie

          if($x=false)

          aber nicht wie

          if(($x=0)!==false)
          TBT

          Die zwei wichtigsten Regeln für eine berufliche Karriere:
          1. Verrate niemals alles was du weißt!


          PHP 2 AllPatrizier II Browsergame

          Kommentar


          • #6
            BINGOOOOOOOOOOOOOOOOOOOOO!!!!!
            Es funktioniert.

            Vielen vielen Dank!

            Kommentar

            Lädt...
            X