Wie bestimmten Eintrag aus Array löschen?

  • HI TT-User.


    Ich habe mich an der Sache schon versucht jedoch löscht das Script den gesamten Array wkid_akt statt nur einem Eintrag welchen ich mit $del_art an das Script übergebe:

  • Da ein Warenkorb wohl nicht mehr als einige dutzend oder hundert Einträge hat, kannst du das natürlich auch einfach in einer Schleife machen.


    Oder falls es ein assoziates Array ist, bzw. du nicht auf die Kontinuität der numerischen Indizes angewesen bist, auch einfach mit unset().


    Was an deinem Code vermutlich falsch ist (wenn ich die Variablennamen deute), ist das array_splice() als zweites argument die länge annimt, nicht den rechten Rand. Mit $del_art-count($wkid_akt); bekommst du aber ohnehin einen negativen Wert, welcher laut Anleitung so behandelt wird:

    Zitat

    Ist length negativ, dann wird der Bereich von length Elementen vor dem Ende, bis zum Ende des Arrays entfernt.


    was vermutlich nicht dass ist was du möchtest.

    "That's not a hair question. I'm sorry." - 01/31/07 - Never forget!

  • Hi Benny,


    statt $array_splice(...., $rechts) trag einfach mal für $rechts eine 1 ein, das sollte helfen :-)


    Also statt

    PHP
    if (count($wkid_akt)>$del_art){
    $wkid_akt = array_splice($wkid_akt, $links, $rechts);
    $_SESSION["wkid_akt"] = $wkid_akt;
    }


    nur


    PHP
    if (count($wkid_akt)>$del_art){
    array_splice($wkid_akt, $links, 1);
    $_SESSION["wkid_akt"] = $wkid_akt;
    }


    Grüssle
    Saschix

  • Saschix hier mal der Link zur Seite für den du dich interessiert hast:
    Hier der OnlineShop


    Mittlerweile schaut der Code folgendermaßen aus:

    PHP
    // Elemente aus dem Warenkorb löschen
    if($_GET['del_art']) {
    $links=$del_art-1;
    array_splice($wkid_akt, $links, 1);
    $_SESSION["wkid_akt"] = $wkid_akt;
    }


    Ergebnis: Das Script löscht egal was übergeben wird immer den letzten Eintrag im Array.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!