phpbar.de logo

Mailinglisten-Archive

[php] mehrdimensionales Array um Dimensionen erweitern

[php] mehrdimensionales Array um Dimensionen erweitern

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Mon Jul 31 13:59:39 CEST 2006


Hi Steffen,

Am Montag, 31. Juli 2006 13:48 schrieb Steffen Kother:
> Hallo Leute,
>
> ich sitze hier an einem mehrdimensionalen Array und krieg die Krise:
>
> Ich durchlaufe mittels while()-Schleife Datensaetze aus der Datenbank
> und erstelle das Gerüst des Arrays:
>
> while ($record = mysql_fetch_assoc($query)) {
> 	$sortiment_tmp = explode('|', $record['reklamation']);
> 	$Sortiment     = $sortiment_tmp[2];
> 	if (!array_key_exists($Sortiment, $sortimente)) {
> 		$sortimente[$Sortiment]['Anzahl'] = 1;
> 		$sortimente[$Sortiment]['Wert']   = $Verlust;
> 	} else {
> 		$sortimente[$Sortiment]['Anzahl']++;
> 		$sortimente[$Sortiment]['Wert']   =
> ($sortimente[$Sortiment]['Wert'] + $Verlust);
> 	}
> }
>
> Soweit ist auch alles gut.
>
> Nun sollen aber noch unter $sortimente[$Sortiment]['Material'] die
> gefundenen Teilenummern als $Teilenummer eingefügt werden. Dazu
> verwende ich das selbe if-Gerüst, um zu schauen, ob $Teilenummer
> schon existiert. Natürlich ist da die Syntax angepasst. Leider
> meckert er mir an, dass er den Index 'Material' nicht kennt. Das
> Ergebnis am Ende - das Array - ist allerdings korrekt erstellt.
>
> $Teilenummer = $record['material'];
> if (!array_key_exists($Teilenummer,
> $sortimente[$Sortiment]['Material'])) {
> 	$sortimente[$Sortiment]['Material'][$Teilenummer]['Anzahl'] = 1;
> } else {
> 	$sortimente[$Sortiment]['Material'][$Teilenummer]['Anzahl']++;
> }

das Problem ist, daß er beim ersten Mal $sortimente[$Sortiment]
['Material'] noch nicht findet, weil dieses Element zu diesem Zeitpunkt 
noch nicht existiert.

Ändere die if-Abfrage einfach so:

if (!isset($sortimente[$Sortiment]['Material'][$Teilenummer])) {
	...
}


Viele Grüße
Lutz

php::bar PHP Wiki   -   Listenarchive