array_key_exists() bei mehrdimensionalem array
am 08.11.2006 00:19:35 von Irmgard Schwenteck
Hallo,
aus einer Datenbankabfrage erzeuge ich eine mehrspaltige Ausgabe - sowas
wie Pivot-Tabellen im Excel.
Wie fange ich den Fall ab, daß nicht alle Elemente dieser matrix belegt
sind?
foreach ($astadt as $stadt) {
echo "
";
echo "$stadt | ";
foreach ($ajahr as $jahr) {
$anlagen=$abfall[$stadt][$jahr][0];
$menge=$abfall[$stadt][$jahr][1];
echo "$anlagen | $menge | ";
}
echo "
";
}
Für jede Stadt gibts eine Zeile, dann jeweils 2 Spalten für die Werte
eines Jahres, und das für jedes vorkommende Jahr.
Mit array_key_exists() komme ich nicht recht weiter...
Gruß
Irmgard
Re: array_key_exists() bei mehrdimensionalem array
am 08.11.2006 00:49:13 von Niels Braczek
Irmgard Schwenteck schrieb:
> Wie fange ich den Fall ab, daß nicht alle Elemente dieser matrix bele=
gt=20
> sind?
>=20
> foreach ($astadt as $stadt) {
> echo "
";
> echo "$stadt | ";
> foreach ($ajahr as $jahr) {
> $anlagen=3D$abfall[$stadt][$jahr][0];
> $menge=3D$abfall[$stadt][$jahr][1];
> echo "$anlagen | $menge | ";
> }
> echo "
";
> }
>=20
> Für jede Stadt gibts eine Zeile, dann jeweils 2 Spalten für die Wer=
te=20
> eines Jahres, und das für jedes vorkommende Jahr.
Am einfachsten mit @:
foreach ( $cities as $city ) {
echo '', $city, ' | ';
foreach ( $years as $year ) {
echo '',
@$waste[$city][$year][0],
' | ',
@$waste[$city][$year][1],
' | '
;
}
echo '
';
}
> Mit array_key_exists() komme ich nicht recht weiter...
if ( isset( $waste[$city][$year] ) ) {...}
MfG
Niels
--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------
Re: array_key_exists() bei mehrdimensionalem array
am 08.11.2006 00:53:49 von Rudi Menter
Niels Braczek schrieb:
> Irmgard Schwenteck schrieb:
>> Wie fange ich den Fall ab, daß nicht alle Elemente dieser matrix belegt
>> sind?
>>
>> foreach ($astadt as $stadt) {
>> echo "
";
>> echo "$stadt | ";
>> foreach ($ajahr as $jahr) {
>> $anlagen=$abfall[$stadt][$jahr][0];
>> $menge=$abfall[$stadt][$jahr][1];
>> echo "$anlagen | $menge | ";
>> }
>> echo "
";
>> }
>>
>> Für jede Stadt gibts eine Zeile, dann jeweils 2 Spalten für die Werte
>> eines Jahres, und das für jedes vorkommende Jahr.
>
> Am einfachsten mit @:
>
> foreach ( $cities as $city ) {
> echo '', $city, ' | ';
> foreach ( $years as $year ) {
> echo '',
> @$waste[$city][$year][0],
> ' | ',
> @$waste[$city][$year][1],
> ' | '
> ;
> }
> echo '
';
> }
>
>> Mit array_key_exists() komme ich nicht recht weiter...
>
> if ( isset( $waste[$city][$year] ) ) {...}
Wahnsinnig schöne Geschichte, hätte ich nie gedacht, daß
es das so gibt, php hat da wirklich auch coole News.
Ich Ewiggestriger hätte gesagt ;) :
Das geht z.B. mit count($_ARRAY_) etwa so:
$anzahl_stadt = count($stadt);
for ($i=0; $i < $anzahl_stadt; $i=$i+1) // oder $i++ bzw. ++$i
{
$astadt = $stadt[$i];
...
$anzahl_jahr = count($jahr);
for ($j=0; $j < $anzahl_jahr; $j++)
{
$ajahr = $jahr[$j];
...
}
}
MfG
--
Re: array_key_exists() bei mehrdimensionalem array
am 08.11.2006 17:43:13 von Irmgard Schwenteck
Hallo
Niels Braczek schrieb:
>> Wie fange ich den Fall ab, daß nicht alle Elemente dieser matrix belegt
>> sind?
>>
....
>> $anlagen=$abfall[$stadt][$jahr][0];
>
> Am einfachsten mit @:
>
....
> @$waste[$city][$year][0],
Ahh, das geht auch bei Variablen. Aber
> if ( isset( $waste[$city][$year] ) ) {...}
das ist natürlich besser. Klar.
Danke :)
Gruß
Irmgard