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