Mailinglisten-Archive |
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