Christian Seiler: Nested Sets-Modell

Beitrag lesen

Hallo ralf,

ich hab in einer MySQL-Datenbank eine Baumstruktur nach dem Nested Sets-Modell:

A
  B
    C
    D
  E

diese Daten möchte ich in diese Form bringen:

['A',
   [
      ['B',
         [
             ['C'],
             ['D']
         ]
      ],
      ['E']
   ]
]

Damit meinst Du vesrchachtelte Arrays, oder?

Ich hab absolut keine Idee, wie ich das machen könnte.

Du selektierst die Daten ja sicherlich nach dieser Methode: http://www.develnet.org/Tech/SelektierenDerDaten

Dann kannst mit dieser Funktion die Daten in ein verschachteltes Array übertragen, sofern sie wirklich in der Reihenfolge, wie sie in obiger URL angeben ist, herauskommen:

function nestedset2recarray ($list) {
  $dst = array ();

for ($k = 0; $k < count ($list); $k++) {
    $entry = $list[$k];
    $children_array = array_splice ($list, $k+1, $entry['children']);
    $entry['children_arr'] = nestedset2recarray ($children_array);
    $dst[] = $entry;
  }
  return $dst;
}

Viele Grüße,
Christian