[PHP Arrayfunktionen] Probleme mit each



  • Laut meinem Buch wird hier ein komplettes Schlüssel/- Wertepaaar an ein eindimensionales Array übergeben. Es werden 4 Werte übergeben, die den Schlüsseln 0,1, key und value entsprechen. Was sind das für Schlüssel?
    MfG

    Tobsen



  • <?
    //assoziativ
    $assar=array("eins"=>"elise", "zwei"=>"betti");
    $numar=array("rotkohl", "grünkohl");
    
    while ($was=each ($assar) ){
        echo $was[0]."<br />";
        echo $was[1]."<br />";
    }
    reset($assar);//wieder aufs erste element setzen
    while ($was=each ($assar) ){
        echo $was['key']."<br />";
        echo $was['value']."<br />";
    }
    
    while ($was=each ($numar) ){
        echo $was[0]."<br />";
        echo $was[1]."<br />";
    }
    ?>
    

    ausgabe:

    eins
    elise
    zwei
    betti
    eins
    elise
    zwei
    betti
    0
    rotkohl
    1
    grünkohl
    

    each liefert aus assoziativen und aus numerischen arrays immer ein array zurück aus einer zeile, erstes element des arrays ist der schlüssel, bei assoziativen arrays dein selbstdefinierter, bei mir oben die eins, zweites element ist der wert, also elise...

    sie haben ein assoziatives moment mitimplementiert, du kannst also statt 0 und 1 auch key und value nehmen.



  • ... danke, hatte ich mir zwischenzeitlich schon fast gedacht. Aber in welcher Reihenfolge werden die denn übergeben. Für mich sieht das nämlich so aus, als wenn erst 0, key un dann 1 und name übergeben werden.
    Folgendes Beispiel mit einem 2-dimensionalen Array:
    <?php

    $name = array("N1" => array("Silvia","Müller"),
    "N2" => array("Gerd","Müller"),
    "N3" => array("Tobias","Müller"),
    "N4" => array("Daniel","Müller"),
    "N5" => array("Simon","Müller"),
    "N6" => array("Manuel","Müller"),
    "N7" => array("Dominik", "Müller")
    );

    list(ma)=each(ma) = each(name);
    list($vn, $nn) = $ma;

    echo $ma; // Ausgabe N1, N1
    echo $vn;
    echo $nn;
    ?>



  • huch, hat sich wohl erledigt....


Anmelden zum Antworten