Es macht dann natürlich ein wenig Aufwand, aus dem Rückgabewert von parse_ini_file() ein mehrdimensionales Array zu erstellen, vor allem wenn man vorher nicht weiß, welche Variablen in der ini-Datei festgelegt sind. Aber für sowas ist ja eine ini-Datei auch nicht gedacht.
Wenn man die Variablennamen in der ini-Datei kennt, kann man es ja so machen:
foreach ($parsed\_ini as $key=\>$value)
{
if (substr($key,0,13)=='untergruppe1\_')
{
$parsed\_ini['untergruppe1'][substr($key,13)]=$value;
unset($parsed\_ini[$key]);
}
}
Es macht dann natürlich ein wenig Aufwand, aus dem
Rückgabewert von parse_ini_file() ein mehrdimensionales Array
zu erstellen
das geht doch in dem $process_sections auf true gesetzt wird.
O.k. gebe ja zu, dass ich den eigentlichen „Sinn“ dieser Funktion missbrauchen will, weil es um Beschreibung geht.
Und unter einem Key sollen mehrere, unterschiedliche Werte greifbar sein.
Ich habe gelesen, dass sich innerhalb der Gruppen/Sectionen nochmals Arrays erzeugen lassen:
[gruppe1]
dies=das
nochwas[]=das:dies
nochwas[]=foo:bar
Hätte dann in $ini_array[‚gruppe1‘][‚nochwas‘][0-X] meine Werte.
Funktioniert aber leider nicht.
Wenn die Werte einzeln in die Gruppe geschrieben werden, hängt es daran, dass weder die Keys noch die Anzahl festliegen.
Ist zu umständlich für die Keys eine Prüfung durchzuführen - würde das dann mit dem parse_ini_file ganz lassen.
Auf diese Art lässt sich aber nur eine zusätzliche Ebene erzeugen und die Indizes werden automatisch von 0 an vergeben. Eigene Werte lassen sich aber wohl nicht festlegen.
Ich habe mich geirrt, es ist doch in begrenztem Umfang
möglich.
‚nochwas‘ => array ( 0 => ‚dies‘, 1 => ‚bar‘)
ja genauso sollte es sein, jedoch gelingt es mir nicht.
Habe gerade mal geschaut: bei meinem Hoster läuft PHP Version 4.4.9
Kann das damit zusammenhängen?
parse_ini_file() ab Vers. 4 … aber dieses Feature vielleicht erst ab Vers. 5 ?
Auf diese Art lässt sich aber nur eine zusätzliche Ebene
erzeugen und die Indizes werden automatisch von 0 an vergeben.
Eigene Werte lassen sich aber wohl nicht festlegen.
auf die Keys kann ich dadurch verzichten, wenn ich sie mit in den Werte nehme … nochwas[]=das:dies
Wenn es denn mal funktionieren würde.
Mache es bisher so, dass ich nochwas=more1 eintrage und more1 ist der Key für die Section, in der dann die Werte stehen.
Hätte gerne alles in einer Gruppe und die Schleife dafür sieht auch ein bißchen wirr aus )
foreach( $ini[$ini[$sec]['nochwas']] as $key=\> $val) { ... }
Eigentlich ist diese Funktion super … eine Anweisung und schwupps ist alles im Array.