unset()

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

  • unset()

    Hallo,
    wie kann man mit unset() auch Arrays löschen? Ich habe mit dem Kontrollkonstrukt print_r($_SESSION); folgenden Bildschirmausdruck:

    Array
    (
    [23hge7773] => 3
    [5524r24] => 1
    )

    Nun möchte ich z.B. [5524r24] => 1 löschen. Geht dies mit unset() überhaupt oder gäbe es noch andere Alternativen?

    Danke für jegliche Hinweise!

  • #2
    Hast du es ausprobiert?

    PHP-Code:
    unset($array['element']); 
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Wie krieg ich das hin bei assoziativen Feldern, wenn ich das mittels einem Formular machen möchte? Ich muss ja das zu löschende Element ansteuern können...

      Kommentar


      • #4
        Zeig doch mal deine Ansätze her. Du wirst ja wissen oder in Erfahrung bringen können, wie die Elemente heißen!
        [FONT="Helvetica"]twitter.com/unset[/FONT]

        Shitstorm Podcast – Wöchentliches Auskotzen

        Kommentar


        • #5
          Hier mal der Codeschnipsel! Es handelt sich um einen Warenkorb und mein Ziel ist es, dass man einzelne Artikel löschen kann.

          [CODE]<?php

          $fp = fopen("produkte.csv","r");
          $sep = ";";

          $fmt1 = "<tr align='left'><th>Artikelnummer</th><th>Bezeichnung</th><th>Anzahl</th><th>Einzelpreis</th><th>Gesamtpreis</th><th>&nbsp;</th><th>&nbsp;</th></tr>";

          /*$fmt3 = "<form><tr align='left'><td><input type='hidden' name='id' value=''><input type='hidden' name='warenkorb' value=''>%s</td><td>%s</td><td><input type='text' name='anzahl' value='' size='4'>%s</td><td>%s</td><td>X</td><td><input type='submit' name='change' value='Anzahl &auml;ndern'></td><td><input type='submit' name='delete' value='l&ouml;schen'></td></tr></form>";*/

          //$fmt5 = "<tr align='left'><td>%s</td><td>%s</td><td>%s</td><td>%s</td><th>%s</th><td>&nbsp;</td></tr>";

          $fmt6 = "<form action='korb_1.php' method='get'><tr align='left'><td><input type='hidden' name='id' value='%s'>%s</td><td>%s</td><td><input type='text' name='anzahl' value='%s' size='4'></td><td>%s</td><th>%s</th><td><input type='submit' name='change' value='Anzahl &auml;ndern'></td><td><input type='submit' name='delete' value='l&ouml;schen'></td></tr></form>";

          $zeile = fgets($fp,100);


          echo "<table id='katalog' border='0'>";

          printf($fmt1); //Überschriften der Rubriken

          while($zeile = fgets($fp,100)){
          $DS = explode($sep,$zeile);
          $key = substr($zeile,0,strpos($zeile,$sep));//Key holen

          if(!isset($_SESSION[$DS[0]])) continue;

          $gesamt = $_SESSION[$DS[0]] * str_replace(',','.',$DS[2]);//Anzahl mal Einzelpreis

          printf($fmt6,$key,$key,$DS[1],$_SESSION[$DS[0]],$DS[2],number_format($gesamt,2,',',' '));

          }

          echo "</table>";

          fclose($fp);

          $delete = $_GET['delete'];
          if(isset($delete))
          {
          unset($fmt6);
          }

          ?>/CODE]

          Du musst Dir das so vorstellen, dass jeder angeklickte Artikel auf einer separaten Zeile inkl. Anzahl, Preis etc. aufgeführt wird. Nun soll aber die Möglichkeit bestehen, dass man einzelne Artikel wieder löschen kann.

          Kommentar


          • #6
            hm,
            1. code tags bitte richtig setzen, und den code noch ein bisschen für die auflösungs-armen umbrechen.
            2. du löschst einen format-string der html enthält. wie soll das den artikel aus dem warenkorb löschen ?
            wie wärs mit
            PHP-Code:
            unset($_SESSION[$_GET['id']]); 
            3.
            PHP-Code:
            while($zeile fgets($fp,100)) 
            was ist wenn eine zeile länger als 100 zeichen ist?
            4.
            PHP-Code:
            $DS explode($sep,$zeile);
            $key substr($zeile,0,strpos($zeile,$sep));//Key holen 
            danach gilt doch $DS[0] === $key .. (wozu einfach wenns auch kompliziert geht)

            vielleicht solltest du erst mal dein script nachvollziehen bevor du was änderst
            blllubb

            Kommentar

            Lädt...
            X