Hi
ich würde gerne mit mehrdimensionalen Arrays arbeiten, die ich in einer Include Datei ablegen will.
Am liebsten wäre mir die Definition einer Tabelle, die ich nach deren Spalten indizieren kann, um sowohl über die Spalte 1 als auch über andere Spalten dann jeweils an die Werte der anderen Spalten zu kommen. Vom Prinzip her eine Datenbank-Tabelle mit n Spalten und n indices.
Das gibt’s in PHP aber nicht …
Prinzipiell soll mir das Array die Möglichkeit geben:
- von einem Alias (z.B. „WZ-Decke“) auf die ID, auf den Klartext („Wohnen Decke Fluterleiste am Fenster“), auf Initialisierungswerte und weitere „Properties“ (gehört zur Gruppe Anwesenheitssimulation, gehört zur Gruppe „Lichtszene1“ usw.) zu schliessen
- von einer ID auf einen Alias zu schliessen
- von einer Gruppe („Lichtszene1“) auf die beteiligten ID’s zu schliessen
In anderen Programmiersprachen, die ich beherrsche, würde ich das mit einem eindimensionalen Hilfsarray tun, dem ich je Array-Wert einen String zuordnen würde, den ich mit eigenen Delimitern in Spalten organisiere. Das Erste Arrayelement wäre die Splatendefinition selbst.
Dieses Hilfsarray würde ich anschliessend auslesen in n (n=Anzahl Spalten) zweidimensionale Arrays auslesen und diese Arrays jeweils sortieren.
Wie macht man sowas in PHP?
BEISPIEL (| ist Delimiter):
Alias | ID | Klartext | Typ | Start | SZ1 | SZ2 | SZ3 | SZ4 | PK
Alias=EZ01 | ID=20112 | Klar=Essen Deckenlampe aussen | Typ=FS20 | SZ1=0 | SZ2=1 | SZ4=1 | PK=0
Alias=EZ02 | ID=10712 | Klar=Essen Wandlampeen | Typ=FS20 | SZ1=0.3 | SZ2=1 | SZ4=0 | PK=0
Alias=T01 | ID=50112 | Klar=Terrasse Gross Wandfluter | Typ=FS20 | SZ1=0.3 | PK=1
Hieraus würde dann das Array „Alias-ID“:
EZ01 => 20112
EZ02 => 10712
T01 => 50112
das Array „SZ1“:
[1,1] => EZ01
[1,2] => T01
[2,1] => 1
[2,2] => 0.3
Das Array „Panik“
[1] => T01
So könnten für Funktionen wie „setze Szene1“ relativ einfache geschachtelte Loops programmiert werden, um diese zu realisieren:
Auslesen des SZ1-Arrays --> alle beteiligten Alisasse und deren Werte
Über die Aliasse kommt man an die Typen (Funktionsaufrufe FS20 oder EIB …) sowie die ID’s, um entsprechende Funktionsaufrufe zu realisieren.
Hat jemand sowas schon realisiert und wenn ja, wie?
1000 Dank
jwka