Guten Morgen, Munich! Gut geschlafen?
gut ja, aber zu kurz -.-
Gut, nun hätte ich also ein Array mit dem „neuen“ Aufbau, z.b.
wie folgt:
Zeilenbaum:
$array[1][‚continent‘] = „Europa“;
$array[1][‚country‘] = „Deutschland“;
$array[1][‚customer‘] = „Kunde A“;
Frage dazu: ist der Aufbau IMMER gleich oder kanns sein dass die Datensätze sich in der anzahl unterscheiden sprich dass ein
$array[1][‚customer‘] auf einmal nicht gesetzt ist?
Spaltenbaum:
$spaltennamen[1] = „Produktgruppe K“;
$spaltennamen[2] = „Produkt K-2“;
Datenbereich:
Werte für Produkt K-2:
$array[1][‚pieces‘] = 100
$array[1][‚intake‘] = 300
Frage auch hier: Ist pieces und intake immer gegeben oder auch mal nur eins davon?
Natürlich gebe ich mir Mühe, das Problem zu beschreiben! Wir
haben hier eine Verbindung zwischen Datenbereich und
Zeilenbereich (durch die ID-Nummer). Die Verbindung zum
Spaltenbereich fehlt noch. Muss allenfalls doch eine 3.
Dimension eingeführt werden?
nein. Ich sehe ehrlich gesagt da keine Unterschiede zwischen Beschriftungsdaten und Inhaltsdaten.
Die weitere Frage ist, wie ich dieses „neue“ Array nun auf
eine einfache Art als HTML rausschreiben könnte. Ich stelle
mir in etwa sowas vor:
foreach ($array as $row) {
echo „“;
foreach ($row as $val) echo „$val“;
echo „“;
}
Das Problem dabei ist jedoch, dass die Werte auf die richtigen
Spalten verteilt werden müssen. Wie im vorherigen
Array-Beispiel kann es ja dann pro Produktgruppe mehrere
Produkte haben, welche jeweils ihre eigenen Werte (Pieces /
Intake) beinhalten. In obiger foreach-Schleife ist diese
Funktionalität noch nicht enthalten.
ermittle erst mal, wieviele Spalten Du brauchst also ein
$anzahl = count($array[1]); wobei natürlich die 1 immer da sein muss…
anschliessend weisst Du wie oft Du machen musst…
den Tabllenkopf gehste dann mit einer for schleife durch und prüfst immer auf
if (isset($spaltennamen[$i])) echo „$spaltennamen[$i]“;
else echo " ";
anschliessend geht das mit Deinen Inhaltsdaten genauso.
Natürlich musst Du Dir erst Deine Array-Keys wieder auslesen lassen.
Achtung - wenn Du die beiden Keys immer hast für Stück und Umsatz und die untereinander haben willst dann solltest Du entweder einen eigenen Array-Datensatz dafür bauen oder innerhalb der Schleife die beiden (bzw nur einen) Keys ausklammern und an der vorgesehenen Stelle dann eine neue Tabelle erzeugen…
Eine weitere, wichtige Funktionalität wird dann zusätzlich
noch sein, verschiedene Spalten/Zeilen zu totalisieren. Aber
vielleicht lassen wir das momentan mal aussen vor.
ist im Prinzip doch nicht sooo schwer…
zumindest wenn ich mich recht daran erinnere dass man mit
${$variablenname} = ${$variablenname} + $x;
variable variablennamen erstellen kann - der Name ist dann wieder der array-key…
nu musste aber langsam mal selbst auf nen grünen Zweig kommen 