Tomarse: Array umdrehen?

Hallo,

ich habe eine Frage zu PHP3. Gibt es eine Funktion für PHP3, ein Array umzudrehen, so dass das erste Element an letzter Stelle, das zweite Element an vorletzter Stelle usw steht? In PHP4 gibt es ja array_reverse(), aber in PHP3?
Gibt es überhaupt eine Möglichkeit, in PHP3 einen Array umzudrehen?

Vielen Dank,
Tomarse

  1. Hi Tomarse,

    ich habe eine Frage zu PHP3. Gibt es eine Funktion für PHP3, ein Array umzudrehen, so dass das erste Element an letzter Stelle, das zweite Element an vorletzter Stelle usw steht? In PHP4 gibt es ja array_reverse(), aber in PHP3?

    wohl eher nicht, sonst wäre sie in PHP4 nicht dazugekommen ;-)

    Gibt es überhaupt eine Möglichkeit, in PHP3 einen Array umzudrehen?

    klar geht das, und zwar 'self'-made:

    <?
    function reverse($feld)
    {
        end($feld);
        
        for($n=count($feld); $n>0; $n--)
        {
            $reverseFeld[key($feld)]=current($feld);
            prev($feld);
        }
        return $reverseFeld;
    }
    ?>

    schonen Tag noch

    Carsten

    1. Gibt es überhaupt eine Möglichkeit, in PHP3 einen Array umzudrehen?
      klar geht das, und zwar 'self'-made:

      Es gibt noch eine weitere Lösung, die etwas resourcenschonender ist,
      da sie mit References arbeitet.
      Zu finden auf http://www.phpwizard.net/phpTips/show.html?catID=22, ganz
      am Ende.

      Björn.

      1. Gibt es überhaupt eine Möglichkeit, in PHP3 einen Array umzudrehen?
        klar geht das, und zwar 'self'-made:

        Es gibt noch eine weitere Lösung, die etwas resourcenschonender ist,
        da sie mit References arbeitet.
        Zu finden auf http://www.phpwizard.net/phpTips/show.html?catID=22, ganz
        am Ende.

        Björn.

        Hi Björn,

        Schnapp sagte die Falle.... aber ich fürchte die Erklärung wird etwas länglich:

        Die beim php Wizzard angegebene Funktion macht etwas anderes als meine bzw.
        das von Tomarse angefragte array_reverse(). Ausserdem ist sie nicht allgemeingültig.

        PHP Arrays sind grundsätzlich assoziativ. Es kann also folgendes  Array geben
        $demo=array( 1 => "Hallo", "x" => "tschuess", 5 => "moin moin");

        echo $demo["x"];  // gibt tschuess aus

        In diesem Array gibt es kein Element $demo[2], $demo[0] obwohl es 3 Elemente enthält.

        Die Funktion array_ reverse() ändert die Reihenfolgen der Elemente im Array. Die Zuordnung
        zwischen Index und Inhalt bleibt dabei erhalten. Vom array_reverse() siehrt man also nur
        was, wenn man das array mit next() oder each() (....) abarbeitet.

        Soweit so speziell, ärgern tut mich nur dieses "Throw it into a library, saves you writing it yourself. :) "
        für 'ne Triviallösung, die nur im Sonderfall geht. (Und sich dann auch noch codeWizard nennen. )

        keep coding,

        Carsten