[array] fortschreiten eines indizes nach unset()

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

  • [array] fortschreiten eines indizes nach unset()

    ich habe ein kleines array-problem .....
    PHP-Code:
    // menu-array anlegen.
    $menu = array();

    // viele viele viele viele menupunkte werden immer so hinzugefügt.
    $menu[] = '...' ;

    // und nun lösche ich den letzten array-index.
    unset($menu[(count($menu)-1)]);

    // ich will dann aber weitere punkte aufnehmen.
    $menu[] = 'weiter ....'
    und jetzt habe ich ein problem.

    wenn die indizes bis zum unset() z.b. von 0 - 6 gingen, und ich 6 entferne, ist 'noch' alles ok.

    der nächste index bei $menu[] ist dann 7, kann ich ja noch verstehen.
    (vergleichbar mit dem auto_increment der mysql)

    ich benötige aber zwingend den index 6.

    ich habe mich so beholfen.

    PHP-Code:
    // menu-array anlegen.
    $menu = array();

    // viele viele viele viele menupunkte werden immer so hinzugefügt.
    $menu[] = '...' ;

    // und nun lösche ich den letzten array-index.
    unset($menu[(count($menu)-1)]);

    // --------------------------------------

    $tmenu $menu;         // selber überlegt. ;-)
    $menu = array();
    $menu $tmenu;

    // --------------------------------------

    // oder auch
    $menu array_reverse(array_reverse($menu)); // stand im manual :-p

    // --------------------------------------


    // ich will dann aber weitere punkte aufnehmen.
    $menu[] = 'weiter ....'
    dadurch, dass ich das array wieder neu initialisiere und die vorhanden daten wieder übernehme, kann der index nun wieder normal weiterlaufen.

    hat jemand eine idee, wie ich das ohne dieses temporäre array oder dem reverse-trick machen könnte?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |



  • #2
    wenn du immer nur den letzen index löschen willst => array_pop()
    PHP-Code:
    <pre>
    <?
    $array = array(0,1,2,3);
    print_r($array);
    array_pop($array);
    $array[]=4;
    print_r($array);
    ?>
    Kissolino.com

    Kommentar


    • #3
      hehe ... das ist es...

      (habs grad mal in einem dummy-script getestet. in das richtige script kommt es heute abend rein)

      PHP-Code:
      <pre>
      <?php

      // menu-array anlegen.
      $menu = array();

      // viele viele viele viele menupunkte werden immer so hinzugefügt.
      for ($i=0;$i<5;$i++)
          
      $menu[] = '...' ;

      print_r($menu);

      // und nun lösche ich den letzten array-index.
      // unset($menu[(count($menu)-1)]);
      array_pop($menu); // wahlweise auch mal das unset() testen. ;-)

      // ich will dann aber weitere punkte aufnehmen.
      for ($i=0;$i<5;$i++)
          
      $menu[] = 'weiter ....';

      print_r($menu);

      ?>
      </pre>
      ich hatte zwar array_pop() im manual gestern gehabt, nur irgendwie hatte ich das falsch verstanden, was da angeben ist.

      ich hatte nur gelesen, dass er das letzte element zurück gibt, aber nicht, dass er es auch aus dem array entfernt..

      thx@Wurzel mein held..
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar

      Lädt...
      X