私のデータベースは、次のようなデータの階層配列を吐き出します。
Array(
[0] => array(
[level] => 0
[wo_number] => foo1
[parent] => NULL
)
[1] => array(
[level] => 1
[wo_number] => foo2
[parent] => foo1
)
[2] => array(
[level] => 2
[wo_number] => bar1
[parent] => foo2
)
[3] => array(
[level] => 2
[wo_number] => bar2
[parent] => foo2
)
[4] => array(
[level] => 2
[wo_number] => bar3
[parent] => foo2
)
[5] => array(
[level] => 2
[wo_number] => bar4
[parent] => foo2
)
[6] => array(
[level] => 2
[wo_number] => bar5
[parent] => foo2
)
)
各配列ノードには、配列内の別のノードを参照する親キーがあります。
そして、配列を次のような形式に変換する必要があります。
Array(
[0] => array(
[level] => 0
[wo_number] => foo1
[parent] => NULL
[children] => array(
[0] => array(
[level] => 1
[wo_number] => foo2
[parent] => foo1
[children] => array(
etc etc etc
)
)
)
)
)
これで、json_encodeして、ExtJSTreePanelで使用できるようになります。