Idee gesucht Array(mehrdimensional) anordnen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Idee gesucht Array(mehrdimensional) anordnen

    Hi Zusammen,
    habe leider nen kleinen Blackout, und auch nach vielen Versuchen keine passende Lösung gefunden. Suche also hier nach Vorschlägen und/ Ideen für eine Lösung.

    Ich habe ne Tabelle in der werden Themengruppen/ Produktgruppen gespeichert.
    Der logische Aufbau der TAbelle sieht so aus:
    gruppen_id (INT) | gruppen_name (CHAR) | gruppen_code (INT) | gruppe_belong_to (INT)

    eine mögliche Datenstruktur sieht ao aus:
    1 | Gruppe1 | 300 | 0
    2 | Gruppe2 | 400 | 0
    3 | Gruppe1a | 310 | 1
    4 | Gruppe2a | 410 | 2
    5 | Gruppe1b | 311 | 3
    6 | Gruppe2b | 411 | 4
    7 | Gruppe1c | 500 | 5
    8 | Gruppe1d | 501 | 5
    Heißt "übersetzt":
    Alle Gruppen, die in der letzten Spalte eine 0 haben sind "HAuptgruppen"
    Alle Anderen Gruppen sind Untergruppen jeweils der Gruppe, bei der die gruppe_belong_to gleich (==) gruppen_id (Hoffe, ich habe das verständlich ausgedrückt)

    Mein Ziel ist es, die DAten in ihrer Ordnungstrucktur in ein Array zu packen.
    Etwa so:
    $array[0][1] = Gruppe1
    $array[0][1][3] = Gruppe1a
    $array[0][1][3][5] = Gruppe1b
    $array[0][1][3][5][7] = Gruppe1c

    $array[0][2] = Gruppe2
    $array[0][2][4] = Gruppe2a
    Leider komme ich entweder nur bis zur 3. Dimension, oder ich finde keine Möglichkeit die ID der jeweils vorherigen (übergeordneten) gruppe zu übergeben.
    Meine Ansatz war, die DAten mit einem einfachen Selecht aus der DB zu ziehen und in ein 1-dimensionales Array zu packen. Danach das Array mittels PHP durchlaufen zu lassen, und anhand der Spalte "gruppe_belong_to" Einzelarrays zu bilden. etwa so:
    array1[0][1] = gruppe1
    array1[0][2] = gruppe2

    array1[5][7] = gruppe1c
    array1[5][8] = gruppe1d

    Danach würde ich array[0] durcharbeiten lassen und alle Arrays zuordnen, bei denen die Nummer der 2. Dimension gleich der Nummer der 1. Dimension eine anderen Arrays ist, und die entsprechend zuordnen.
    Wie gesagt, ist nur ne Idee und funzt entweder nur bis zur 3. Dimension oder ohne weitergabe der ID der übergeordneten Gruppe.

    Also, wenn jemand ne bessere/ performante Lösung hat, oder nur nen Vorschlag, der hilft, die Beschränkung des eigenen Denkens zu sprengen, wäre ich sehr dankbar. Die Lösung sollte dimensional nicht beschränt sein. Die übernahme der jeweiligen gruppen_id ist notwendig, weil anhand dieser ID Daten aus anderen SELECT's zugeordnet werden sollen.

    Danke und Gruß nanobit

  • #2
    sxchau doch mal ob Dir ein nested set helfen kann
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Hallo und herzlichen Dank für den Tip
      nach einem ersten Überfliegen denke ich, das ist genau das was ich brauchen kann. (Man lernt halt nie aus)

      Kommentar

      Lädt...
      X