array_key_exists() bei mehrdimensionalem array

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