Denkanstoß: Array Layout

SkyDevMent

Erfahrenes Mitglied
Guten Abend,
ich zerbrechen mir nun seit einigen Stunden den Kopf wie ich am besten ein Array sortiere um daraus folgende HTML-Code generieren zu können:

HTML:
<table border="1" border="black">
<tbody>
<tr>
<th>Stunden</th>
<th>Montag</br>11.11.2012</th>
</tr>
<tr>
<td>1.</td>
<td>
<table border="1" border="black">
<tbody>
<tr>
<th>Klasse</th>
<th>Lehrer</th>
<th>Vertretung</th>
</tr>
<tr>
<td>8a</td>
<td>lehrer1</td>
<td>lehrer2</td>
</tr>
</tbody>
</table>
</td>
</tbody>
</table>
Der Code oben ist natürlich nur ein Beispiel und soll am Ende nur aufgrund der übergebenen Daten entstehen.

Mein momentaner Ansatzt sieht wie folgt aus:

PHP:
$_DATA[0]['Code']            = '1x1';
$_DATA[0]['Datum']            = '09.10.2010';
$_DATA[0]['Lehrer']            = 'Leher1';
$_DATA[0]['Fach']            = 'Spanisch';
$_DATA[0]['Vertretung']        = 'Lehrer2';
$_DATA[0]['Klasse']            = '10a';


for($i = 0; $i < $count; $i++)
       {
           $result    =    convertDate($array[$i]['Date']);
           
           $tmp[$result['day']][$result['hour']]['Datum']        = $_DATA[$i]['Datum'];
           $tmp[$result['day']][$result['hour']]['Lehrer']        = $_DATA[$i]['Lehrer'];
           $tmp[$result['day']][$result['hour']]['Fach']        = $_DATA[$i]['Fach'];
           $tmp[$result['day']][$result['hour']]['Klasse']        = $_DATA[$i]['Klasse'];
           $tmp[$result['day']][$result['hour']]['Vertretung']     = $_DATA[$i]['Vertretung'];
       }

Der Vorgang der Sortierung an sich ist für mich nicht das Problem sonder eher die Logik um daraus dann den Passenden HTML-Code ohne unnötige komplizierte Verschachtelungen im Code zu haben. An sich müsste mann das Array ja nach den Stunden und Tagen sortieren. Ich freue mich über eure Hilfe und hoffe mal das ich mich halbwegs verständlich geäußert habe.

Mit freundlichen Grüßen
Leon Bergmann
 
Besser wäre ne Datenbank ;)

Aber theoretisch: $array[$datum][] = array('klasse', 'lehrer', 'vertretung', '...');
(Ich glaub, das ist auch soweit deine Struktur... Mir ist das jetzt schon zu unübersichtlich :P)
 
Mh, das ist echt recht kompliziert bei genauerer Betrachtung.

Ich würde im View einfach bie jedem datensatz prüfen ob sich das a) das Datum oder b) die Stunde verändert hat (im vergleich zum vorherigen Datensatz) und dann entsprechend das HTML generieren.
 
Man versteht überhaupt nicht was du willst. Kannst du das nur auf das Nötigste unterbrechen und deinen Code einrücken? Außerdem benutzt du Funktionen und Variablen, von denen man überhaupt keine Ahnung hat wie diese Funktionieren usw.
 
1. Der Code ist eingerückt, nur durch das schmale Layout hier ist die Einrückung nicht mehr 100%

2. Spielt die Funktion die ich dort verwende überhaupt keine Rolle, aber zur Info sie wandelt ein internes Datumsformat in ein Leesbares um

3. Brauche ich keine Hilfe bei dem Sortiervorgang sonder eher eine Idee wie mann meine Daten sinnvoll strukturiert um daraus Möglichst einfach den oben stehenden HTML generieren zu können.

4. Habe ich das Array
PHP:
$_DATA
nur zur Veranschaulichung meiner möglichen Daten mitgeliefert worden.

5. Habe ich aus folgenden Gründen nicht dem gesammten Code hier gepostet:
-1 der Code ist mit gut 400 Zeilen zu lang
-2 nicht der gesammte Code ist relevant

Trotzdem vielen Dank für deine Mühe !

Mit freundlichen Grüßen
Leon Bergmann
 
Also soll für einen neuen Tag auch die äußere Tabelle komplett neu gemacht werden? Das ist einfach verwirrend für alle anderen, ich musste jetzt auch erstmal 10 Minuten gucken, bis ich es einigermaßen verstanden hatte alles, aber wenn es schon funktioniert, dann würde ich auch nix mehr ändern. Ich finde diese Darstellungsart auch eher ungewöhnlich. Entweder alle in einer Tabelle oder nur von einem tag alle und dann auch in eine Tabelle. Mehrere Tabellen und die dann auch noch Schachteln... ich weiß nicht.
 
Zurück