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