Mailinglisten-Archive |
»Christian Hamacher« sagte am 2002-03-19 um 20:25:09 +0100 :
> ich habe es einfach mal gemacht.
> Ist zwar noch nicht perfekt aber ab hier kannst du weiter machen.
Danke an alle!
In der Zwischenzeit hatte ich eine andere Lösung gefunden:
function js_array_generieren($array, $name, $prefix = array()){
// Erzeuge eine Return Variable, die bei Funktionsaufrufen
// nicht geleert wird
static $return;
// Wenn es keinen Prefix gibt, wird die Funktion (hoffentlich) das
// erste Mal, also nicht rekursiv, aufgerufen
// Lösche dann das Rückgabe Array
if (0 == count($prefix)){
$return = array();
}
// Durchlaufe das Übergebene Array
foreach ($array as $key => $value){
// Wenn der akt. Wert wieder ein Array ist, müssen wir in die
// Funktion rein-rekursiv-en
if (! is_array($value)){
// Wenn es einen Prefix gibt, so sollte in diesem die vorhergehenden
// Texte für die Ausgabe als Array stehen
// Je nach dem, ob es einen Prefix gibt, muß der "Key" anders
// erzeugt werden
if (0 < count($prefix)){
// Prefix vorhanden
$k = sprintf ("%s%s[%s]", $name, implode('', $prefix), $key);
} else {
// Kein Prefix angegeben
$k = sprintf ("%s[%s]", $name, $key);
}
// Kein Array. Wert vorhanden und kann ausgegeben werden
$return[$k] = $value;
} else {
// Value ist ein Array
// Hänge den aktuellen Key an das Array mit den Prefixen an
$prefix[] = sprintf('[%s]', $key);
// Rekursiver Aufruf der Funktion.
// Abbruchbedingung: $value ist kein Array
js_array_generieren($value, $name, $prefix);
// Das oberste Element des Prefix Arrays wird nicht mehr
// benötigt -> Weg damit!
array_pop($prefix);
} /* if (! is_array($value)) */
} /* von foreach ($array as $key => $value) */
// Gebe zurück, was wir erzeugt haben
return $return;
}
Alexander Skwar
--
How to quote: http://learn.to/quote (german) http://quote.6x.to (english)
Homepage: http://www.iso-top.de | Jabber: askwar_(at)_charente.de
iso-top.de - Die günstige Art an Linux Distributionen zu kommen
Uptime: 3 days 4 hours 6 minutes
php::bar PHP Wiki - Listenarchive