luti: Arraymanipulation / Daten für verschachselte Auswahlliste

Hallo in die Runde,

ich verwende für ein Projekt das Script für verkettete Auswahllisten (3 Felder): http://aktuell.de.selfhtml.org/artikel/javascript/verkettete-auswahllisten/index.htm

Die Daten dafür lese ich aus einer MySQL-Datenbank ein. Und da liegt das Problem ... Da ich nicht 1000e von Abfragen senden möchte, lasse ich mir das Gesamtergebnis als ein assoziativen Array ausgeben, dass im Prinzip alle nötigen Angaben enthält. Nur müssen diese noch in die richtige Form gebracht werden. Kann mir dabei jemand helfen?

So lese ich die Daten aus der DB aus:
FirmaName FirmaID TypName TypID ProduktName ProkuktID
"xy GmbH" "40"    "Typ1"  "10"  "A6X-45"    "31"
"xy GmbH" "40"    "Typ1"  "10"  "A4X-90"    "75"
"xy GmbH" "40"    "Typ2"  "1"   "A-100M"    "2428"
"xy GmbH" "40"    "Typ2"  "1"   "A-110ew"   "939"
"xy GmbH" "40"    "Typ3"  "2"   "X-1023"    "437"
"xy GmbH" "40"    "Typ3"  "2"   "X-10re"    "385"
"xy GmbH" "40"    "Typ3"  "2"   "A-127P"    "3288"

Und in diese Form müssen sie:

var kombinationen = {

'Firma' : {
  '40' : ['40', 'xy GmbH'],
  '42' : ['42', 'xy GmbH und Co KG']
},

'Typ' : {
  '40' : [
    ['40-10', 'Typ1'],
    ['40-1', 'Typ2'],
    ['40-2', 'Typ3']
  ],
  '42' : [
    ['42-10', 'Typ1'],
    ['42-3', 'Typ4']
  ]
},

'Produkt' : {
  '40-10' : [
    ['31', 'A6X-45'],
    ['75', 'A4X-90']
  ],
  '40-1' : [
    ['2428', 'A-100M'],
    ['939', 'A-110ew']
  ]
}
};

Wie gehe ich dabei am besten vor?
Zunächst würde ich für die Firmen das Array um die Spalte 3-6 "kürzen" und dann mit array_unique Doppeleinträge herausfiltern. Aber wie lösche ich die Spalten? Mit array_slice kann ich ja nur horizontal löschen, ich bräuchte es vertikal ...

Falls jemand eine Komplettlösung hat, ist er/sie natürlich auch sehr willkommen!

Dank & Gruß,
luti

  1. Ok, habe jetzt mit einigem Umstand selber eine Lösung gefunden ...

    1. Hallo.

      Ok, habe jetzt mit einigem Umstand selber eine Lösung gefunden ...

      Verrate sie bitte niemandem. Nicht, dass noch jemand etwas daraus lernt.
      MfG, at