階層データを持つように設定された 4 つのテーブルがあります。結合を介してデータを取得し、結果から多次元配列を取得する再利用可能な方法を見つけようとしています。これは、将来別のテーブル レイアウトで使用できる可能性があります。最終的にはjsonとして吐き出したい。これを行う良い方法はありますか?
mySQL コードの例を次に示します。
SELECT
table1.name as level1_name,
table1.id as level1_id,
table2.name as level2_name,
table2.id as level2_id,
table3.name as level3_name,
table3.id as level3_id,
table4.name as level4_name,
table4.id as level4_id
FROM
table1
LEFT JOIN table2 on table2.parentid = table1.id
LEFT JOIN table3 on table3.parentid = table2.id
LEFT JOIN table4 on table4.parentid = table3.id
WHERE
table1.id = 5
次のような結果が見たいです。
Table1_name
{
Table2_name {
Table3_name {
Table4_name,
Table4_othername
}
}
Table2_othername {
Table3_othername {
Table4_othername,
Table4_otherothername
}
}
}
しかし、私が得ているのは次のとおりです。
Array
(
[0] => stdClass Object
(
[level1_name] => Lorem
[level1_id] => x
[level2_name] => Ipsum
[level2_id] => x
[level3_name] => Dolor
[level3_id] => x
[level4_name] => Eimet
[level4_id] => x
)
[1] => stdClass Object
(
[level1_name] => Lorem
[level1_id] => x
[level2_name] => Ipsum
[level2_id] => x
[level3_name] => Dolor
[level3_id] => x
[level4_name] => Eimet
[level4_id] => x
)
[2] => stdClass Object
(
[level1_name] => Lorem
[level1_id] => x
[level2_name] => Ipsum
[level2_id] => x
[level3_name] => Dolor
[level3_id] => x
[level4_name] => Eimet
[level4_id] => x
)
)