unset() und nachrücken ??

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

  • unset() und nachrücken ??

    Also ich habe eine Frage zur unset() Funktion. Ich habe ein Array mit 5 Werten welche ich in einer for-Schleife asugebe:

    PHP-Code:
    $array = array("Martin""Jessi""Michaela""Anna""Uwe");

     for (
    $i=0$i<=4$i++) 
        {        
    // PHP-Code    
        
    echo "Familienmitglied Nr.".($i+1)." ist ".$array[$i]."\n<br/>";
        } 
    So, und jetzt lösche ich mit der unset() Funktion einen der Arraywerte und gebe diese wieder aus.:

    PHP-Code:
    unset($array[0]);
    echo 
    "<br/>";
     for (
    $i=0$i<=4$i++) 
        {        
    // PHP-Code    
        
    echo "Familienmitglied Nr.".($i+1)." ist ".$array[$i]."\n<br/>";
        } 
    Allerdings wird ja jetzt der Wert von $array[0] einfach nur gelöscht und steht, wenn ich mit var_dump($array) abfrage als Leere Variable. Wie kann ich einrichten, dass sämtliche Werte ($array[1], $array[2] usw) nach unten nachrücken, sprich dass $array[1] zu $array[0] wird wenn ich das eigentliche $array[0] lösche?
    -Am Anfang war das Wort-

    Ich habe fertig mit Abi ^^

  • #2
    http://de3.php.net/manual/de/function.array-shift.php benutzen
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      unset($array[0]);
      $array = array_values($array);
      Wer anderen eine Grube gräbt, der hat ein Grubengrabgerät.

      Kommentar


      • #4
        Ah ^^ funktioniert wunderbar (mit dem shift), danke ^^ und geht das ganze auch in die andere Richtung, also dass ich alle Array Werte um eins nach hinten verschiebe um z.B. an erster Stelle ($array[0]) einen weiteren Wert einzufügen?
        -Am Anfang war das Wort-

        Ich habe fertig mit Abi ^^

        Kommentar


        • #5
          dafür nimmst du dann array_unshift
          Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
          var_dump(), print_r(), debug_backtrace und echo.
          Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
          Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
          Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

          Kommentar


          • #6
            array_unshift()

            Kommentar


            • #7
              *lol* okay danke.
              -Am Anfang war das Wort-

              Ich habe fertig mit Abi ^^

              Kommentar


              • #8
                Was passiert bei dieser Variante? Ich habe nämlich festgestellt, das was mit meinem $array nicht stimmt wenn ich $array1 = array_shift($array) mache..... der code im gesamten sieht so aus:

                PHP-Code:
                <?php

                $array 
                = array("Martin""Jessi""Michaela""Anna""Uwe");

                 for (
                $i=0$i<=3$i++) 
                    {        
                    echo 
                "Familienmitglied Nr.".($i+1)." ist ".$array[$i]."\n<br/>";
                    }

                var_dump($array);
                echo 
                "<br/>";
                print_r($array);

                $array1 array_shift($array);


                echo 
                "<br/>";
                 for (
                $i=0$i<=3$i++) 
                    {           
                    echo 
                "Familienmitglied Nr.".($i+1)." ist ".$array[$i]."\n<br/>";
                    }

                foreach (
                $array as $i)
                    {
                    echo 
                "Familienmitglied ist ".$i."\n<br/>";
                    }
                ?>
                und die Ausgabe im Browser so:

                Familienmitglied Nr.1 ist Martin
                Familienmitglied Nr.2 ist Jessi
                Familienmitglied Nr.3 ist Michaela
                Familienmitglied Nr.4 ist Anna
                array(5) { [0]=> string(6) "Martin" [1]=> string(5) "Jessi" [2]=> string(8) "Michaela" [3]=> string(4) "Anna" [4]=> string(3) "Uwe" }
                Array ( [0] => Martin [1] => Jessi [2] => Michaela [3] => Anna [4] => Uwe )
                Familienmitglied Nr.1 ist Jessi
                Familienmitglied Nr.2 ist Michaela
                Familienmitglied Nr.3 ist Anna
                Familienmitglied Nr.4 ist Uwe
                Familienmitglied ist Jessi <--------------------
                Familienmitglied ist Michaela
                Familienmitglied ist Anna
                Familienmitglied ist Uwe

                Aber müsste da, wo ich die Makierung hingemacht habe nicht erstmal stehen "Familienmitglied ist Martin" ?? Denn das müsste ja in $array noch drinstehen oder?
                -Am Anfang war das Wort-

                Ich habe fertig mit Abi ^^

                Kommentar


                • #9
                  Nein, denn $array wird als Referenz übergeben. Du solltest vorher $array in eine neue Variable kopieren und dann erst darauf operieren...
                  Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                  var_dump(), print_r(), debug_backtrace und echo.
                  Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                  Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                  Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                  Kommentar

                  Lädt...
                  X