each im zweidimensionalen array...
horst
- php
0 lulu0 Sönke Tesch
hallo
wie kann ich denn ein zweidimensionales array durchlaufen?
für eindimensionale gehts ja so:
while(list($key,$value)=each($array)){
echo "$key §value <br>";
}
wie siehts also für
$array[0][0] = "hund";
$array[0][1] = "katze";
$array[1][0] = "goldfisch";
$array[1][1] = "gubby";
aus, wenn ich
1. alle elemete haben will
2. nur die säugetiere
3. nur die zierfische
ausgegeben bekommen möchte????
gruss
horst
Huhu horst
Du musst Dein Beispiel für ein 1-dimensionales Array nur in eine
weitere Schleife stecken. Z.B. so:
foreach ($array as $k = $v){
while(list($key,$value)=each($v)){
echo "$key $value <br>";
}
}
Um nur bestimmte Array-Keys von $array zu berücksichtigen könntest Du
es z.B. so lösen:
$display = array(1,2);
foreach ($array as $k = $v){
if (! in_array($k,$display)) {
continue;
}
while(list($key,$value)=each($v)){
echo "$key $value <br>";
}
}
Viele Grüße
lulu
wie kann ich denn ein zweidimensionales array durchlaufen?
Genauso wie ein eindimensionales, nur verschachtelt. Ein mehrdimensionales Feld ist nichts weiter als ein Feld, dessen einzelne Elemente keine Zahlen oder Zeichenketten sind, sondern selber wiederum Felder.
für eindimensionale gehts ja so:
while(list($key,$value)=each($array)){
echo "$key $value <br>";
}
Für ein zweidimensionales Feld entsprechend:
while(list($key1,$value1)=each($array1))
{
while(list($key2,$value2)=each($value1))
{
echo "[$key1][$key2] = $value2 <br>";
};
};
Geht natürlich auch mit foreach.
Gruß,
soenk.e