Tom Wieczorek: Das letzte Element eines Arrays löschen/wegschneiden

Hi,

folgendes Problem: Ich möchte gerne das letzte Element eines (mehrdimensionalen assoziativen) Arrays entfernen, habe da aber einige Schwierigkeiten. Es gibt zwar array_pop() und array_slice() und noch jede Menge ähnliche Array-Funktionen, allerdings laut PHP-Manual erst ab PHP4, mein Provider setzt aber PHP3 ein und ich stehe auf dem Schlauch....

Ich bräuchte also einen Workaround (der mir bis jetzt noch nicht gelungen ist).

Danke
Tom

  1. Hallo!

    Ich bräuchte also einen Workaround (der mir bis jetzt noch nicht gelungen ist).

    // das Array, von dem Du den letzten Wert löschen möchtest
    $alt_array = array("Hans", "Otto", "Inge", "Swen");

    // Hier ermittelst Du die Länge des Array und verringerst es um -1, also eins weniger.
    $alt_array_wert = count($alt_array) - 1;

    for($i = 0; $i < $alt_array_wert; $i++)
    {
      
       // Hier schreibst Du das alte Array in ein neues Array, ohne den letzten Wert, da die Schleife nur bis zum vorletzten Wert kommt
       $neu_array[$i] = $alt_array[$i];
    }

    Das ist ungetestet, aber sollte funktionieren.

    mfg, André Laugks

    1. Rehi!

      Ich lese gerade "(mehrdimensionalen assoziativen) Arrays". Da liege ich mit meinem Script etwas falsch. War eion kleiner Schnellschuß. Ich überlege mal, ob mior dazu ein Workaround einfällt.

      mfg, André Laugks

      1. Ich lese gerade "(mehrdimensionalen assoziativen) Arrays"

        Du hast mich mit dem count() auf eine Idee gebracht, wie das auch mit assoziativen arrays funzen könnte:

        $alt_array = array("Hans" => "m", "Inge" => "w");
        $alt_array_wert = count($alt_array) - 1;
        $i=0;
        while($i=each($alt_array) && $i<$alt_array_wert){
           $neu_array[$i[key]]=$i[value];
           $i++;
        }

        Das könnte evtl das sein wonach ich gesucht habe. Werde das mal testen.

        Danke
        Tom

        1. $i=0;
          while($i=each($alt_array) && $i<$alt_array_wert){
             $neu_array[$i[key]]=$i[value];
             $i++;
          }

          Natürlich wollte ich unterschiedliche Variablennamen vergeben!!!!!!!!

          Richtiger:

          $i=0;
          while($element=each($alt_array) && $i<$alt_array_wert){
             $neu_array[$element[key]]=$element[value];
             $i++;
          }