array frage

Peter Klein

Erfahrenes Mitglied
Hallo

Habe hier gerade nen Schnipsel vor mir liegen und würd gerne wissen, ob mir das jemand erklären könnte von euch.

PHP:
<?PHP
$array = array("waehrung1" => "Dollar",
               "waehrung2" => "Euro",
               "waehrung3" => "Yen");
while(list($key, $val) = each($array)) {
    echo $key . ": " . $val . '<br>';
}
echo $array[waehrung1];
?>

Bin gerade am lernen und verstehe das nicht ganz mit dieser while Schleife und so.


Peter
 
Er durchläuft das Array und setzt den key des arrays auf die Var $key und den Inhalt auf $val! Denn gibt er alle drei Indexes aus. :) Mehr nicht und unten denn nochmal den ersten Index von $array also echo $array[waehrung1]
 
Also sehe ich das richtig, das die "ID" ( Fortlaufende nummer ) des arrays, in diesem Fall die Währung, der Key ist?
 
Das ganze ließe sich auch in einer foreach-Schleife umsetzen, was meiner Meinung nach für Anfänger leichter verständlich und sowieso (meiner Meinung nach) die kürzere und elegantere Variante ist:
PHP:
$array = array("waehrung1" => "Dollar",
               "waehrung2" => "Euro",
               "waehrung3" => "Yen");

foreach($array as $key => $val) {
    echo $key . ": " . $val . '<br>';
}

echo $array['waehrung1'];
greetz
daddz
 
Peter Klein hat gesagt.:
Also sehe ich das richtig, das die "ID" ( Fortlaufende nummer ) des arrays, in diesem Fall die Währung, der Key ist?
Ja genau, da es nen assoziatives Array ist, kannst du es auch anhand des Keys direkt ansprechen (was natürlich auch mit nicht assoziativen Arrays geht $array[0])

Und wie "daddz" schon meinte ist foreach besser, weil übersichtlicher und außerdem wurde die Schleife extra für Arrays gebaut.

bei assoziativen Arrays, kannst du es soch machen
PHP:
$array1['index1'] = 'der index 1'
$array1['index2'] = 'der index 2'

foreach($array1 as $key /*der Schlüssel oder index des Arrays*/ => $val /*der Inhalt des Arrays*/) {
echo $key . ' - ' . $val . '<br>';
}

/*gibt aus: index1 - der index 1
index2 - der index 2 */

Und nicht assoziative Arrays denn halt einfach so:

PHP:
$array1[] = 'der index 1' //0
$array1[] = 'der index 2' //1

foreach($array1 as $val /*der Inhalt des Indexes*/) {
echo $val . '<br>';
}

/*gibt aus:der index 1
der index 2 */
 
Zurück