Reihenfolge bei list

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

  • Reihenfolge bei list

    Ich habe folgendes probiert:
    (list auf php.net )
    PHP-Code:
    $info = array('coffee''brown''caffeine');

    list(
    $a[0], $a[1], $a[2]) = $info;
    list(
    $eins$zwei$drei) = $info;

    print_r($a);

    echo(
    "<br>Erster Wert: $eins | Zweiter Wert: $zwei | Dritter Wert: $drei"); 
    Ausgabe ist :

    Array ( [2] => caffeine [1] => brown [0] => coffee )
    Erster Wert: coffee | Zweiter Wert: brown | Dritter Wert: caffeine


    In der Doku steht auch :

    list() weist die Werte von rechts beginnend zu. Wenn Sie einfache Variablen benutzen, brauchen Sie sich nicht darum zu kümmern. Wenn Sie jedoch Arrays mit Indizes verwenden, erwarten Sie gewöhnlich die Reihenfolge der Indizes in dem Array genau so, wie Sie sie in list() geschrieben haben (von links nach rechts), was jedoch nicht der Fall ist. Es wird in der umgekehrten Reihenfolge zugewiesen.
    Wieso haben die Elemente bei list verschiedene Reihenfolgen.

    $a ist ein Array, $a[0] ist das erste Elemenet, und wieso bekommt es $a[0] (so wie es in der Doku steht) den letzten Wert von $info, und $eins den ersten Wert von $info ?

    $eins müsste ja theoretisch den selben Wert wie $a[0] bekommen, oder ?

    Wo liegt mein Denkfehler ?

    cya max


    An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

  • #2
    Re: Reihenfolge bei list

    Original geschrieben von MaxP0W3R
    $eins müsste ja theoretisch den selben Wert wie $a[0] bekommen, oder ?
    hat es ja auch.

    wenn du mal genauer hinsiehst, fällt dir ja auf, dass print_r dein array "rückwärts" ausgegeben hat ...
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      ich sag' nur: Brille kaufen

      Kommentar


      • #4
        Ups

        Aber dann ist die Reihenfolge ja immer von Links nach rechts oder ?

        *nix mehr versteh*


        An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

        Kommentar


        • #5
          Re: Reihenfolge bei list

          Wenn Sie jedoch Arrays mit Indizes verwenden, erwarten Sie gewöhnlich die Reihenfolge der Indizes in dem Array genau so, wie Sie sie in list() geschrieben haben (von links nach rechts), was jedoch nicht der Fall ist. Es wird in der umgekehrten Reihenfolge zugewiesen.
          ich denke, damit ist genau das gemeint, was du erfahren hast:

          du (nummerischen) indizes im array wurden in der umgekehrten reihenfolge zugewiesen, d.h. zuerst wurde das array-element mit index 2, dann das mit 1, und dann das mit 0 zugewiesen.

          diese reihenfolge bleibt bei der ausgabe mit print_r oder auch beim durchlaufen des arrays mit foreach ja erhalten.

          es ist aber nicht darauf bezogen, dass werte und schlüssel jetzt "vertauscht" wären.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Achso, die Indizies sind dann Rückwärts.

            Alles klar

            thx & cya max

            Edit:

            ich verstehe aber trotzdem nicht, was PHP da treibt.

            $a[0] ist das 0. Element vom Array $a

            bei der zuweisung muss PHP dann intern die Indizies umdrehen, und wieso wird das gemacht ?
            Zuletzt geändert von MaxP0W3R; 27.07.2004, 21:29.


            An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

            Kommentar

            Lädt...
            X