Archivlink: javarea.de Forum > PHP, MySQL & CGI > dynamisches mehrdimensionales assoziatives PHP4-Array
Vollständigen Link anzeigen: javarea.de Forum > PHP, MySQL & CGI > dynamisches mehrdimensionales assoziatives PHP4-Array
Pages: [1]
| geschrieben von Gast am 18.08.2008 - 15:54 |
Ich möchte in PHP4 eine Art Verzeichnisstruktur in einem mehrdimensionalen assoziativen Feld aufbauen. Wieviele Ebenen das Feld hat, kann ganz unterschiedlich sein, also z.B.
$feld[\'a\'] = \"Wert 1\";
$feld[\'b\'][\'w1\'] = \"Wert 2\";
$feld[\'b\'][\'w2\'] = \"Wert 3\";
Da das Feld aber dynamisch erzeugt wird, kann ich den Quelltext nicht so statisch hinschreiben. Ich kann aber innerhalb einer Schleife den Variablenname erzeugen, also etwa so:
foreach (...) {
$name = ...;
// 1. Durchlauf: $name = \"feld[\'a\']\";
// 2. Durchlauf: $name = \"feld[\'b\'][\'w1\']\";
// 3. Durchlauf: $name = \"feld[\'b\'][\'w2\']\";
}
Meine Idee war nun, hierüber die Werte zuzuweisen, also
foreach (...) {
$name = ...;
$$name = ...; // entsprechender Wert
}
Das funktioniert aber nicht.
Wie kann man ein assoziatives mehrdimensionales Feld dynamisch anlegen, wenn man die Struktur des Feldes im vorhinein nicht kennt und auch die verwendeten Schlüssen nicht im Voraus bekannt sind.
Vielen Dank!
|
| geschrieben von Danny am 18.08.2008 - 19:30 |
Hallo,
so ganz hab ich dein Problem nicht verstanden. Möchtest du ein Mehrdimensionales Array erstellen, wenn ja nach welchen Vorgaben oder möchtest du ein dynamisch erzeugtes Array auslesen?
Wenn du es auslesen willst, würde ich mit einer rekursiven Funktion arbeiten. Also eine Funktion die sich selbst aufruft.
Als kleines Beispiel
| PHP-Quelltext | 1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
|
<?php
$feld = array(
'a' => 'Wert a',
'b' => array(
'w1' => 'Wert b w1',
'w2' => 'Wert b w2',
'w3' => array(
't1' => 'Wert b w3 t1'
)
),
'c' => array('Wert c 1', 'Wert c 2')
);
function auslesen($array) {
foreach($array as $key=>$value) {
if(is_array($value) == true) {
echo 'Key: '. $key .' ARRAY <br>';
auslesen($value);
} else {
echo 'Key: '. $key .' - Value: '. $value .'<br>';
}
}
}
auslesen($feld);
?>
|
Schönen Gruß
Danny |
|