0
我無法將我的mysql錶轉換爲json。 我有一個表,顯示僱員那樣的層次結構:將層次結構提取爲json
該表是一個員工表 ID,名字,姓氏,PARENTID
所以現在我想通過數據抽取成查詢一個多層次的json對象來模擬顯示僱員與他們的主管。
我希望有人能幫助我。
我無法將我的mysql錶轉換爲json。 我有一個表,顯示僱員那樣的層次結構:將層次結構提取爲json
該表是一個員工表 ID,名字,姓氏,PARENTID
所以現在我想通過數據抽取成查詢一個多層次的json對象來模擬顯示僱員與他們的主管。
我希望有人能幫助我。
假設您已經從數據庫獲取數據,下面的解決方案將爲您提供所需的信息。
要走的道路是通過遞歸。
<?php
function buildTree(array &$elements, $parentId = 0) {
$branch = array();
foreach ($elements as $element) {
if ($element['parentid'] == $parentId) {
// recursion:
$children = buildTree($elements, $element['id']);
if ($children) {
$element['children'] = $children;
}
$branch[$element['id']] = $element;
unset($elements[$element['id']]);
}
}
return $branch;
}
$rows = [
['id' => 1, 'firstname' => 'john1', 'lastname' => 'doe', 'parentid' => 0],
['id' => 2, 'firstname' => 'john2', 'lastname' => 'doe', 'parentid' => 1],
['id' => 3, 'firstname' => 'john3', 'lastname' => 'doe', 'parentid' => 1],
['id' => 4, 'firstname' => 'john4', 'lastname' => 'doe', 'parentid' => 0],
['id' => 5, 'firstname' => 'john5', 'lastname' => 'doe', 'parentid' => 3],
];
print_r(buildTree($rows));
和結果數組:
Array
(
[1] => Array
(
[id] => 1
[firstname] => john1
[lastname] => doe
[parentid] => 0
[children] => Array
(
[2] => Array
(
[id] => 2
[firstname] => john2
[lastname] => doe
[parentid] => 1
)
[3] => Array
(
[id] => 3
[firstname] => john3
[lastname] => doe
[parentid] => 1
[children] => Array
(
[5] => Array
(
[id] => 5
[firstname] => john5
[lastname] => doe
[parentid] => 3
)
)
)
)
)
[4] => Array
(
[id] => 4
[firstname] => john4
[lastname] => doe
[parentid] => 0
)
)
你json_encode
結果後,you will get:
{
"1": {
"id": 1,
"firstname": "john1",
"lastname": "doe",
"parentid": 0,
"children": {
"2": {
"id": 2,
"firstname": "john2",
"lastname": "doe",
"parentid": 1
},
"3": {
"id": 3,
"firstname": "john3",
"lastname": "doe",
"parentid": 1,
"children": {
"5": {
"id": 5,
"firstname": "john5",
"lastname": "doe",
"parentid": 3
}
}
}
}
},
"4": {
"id": 4,
"firstname": "john4",
"lastname": "doe",
"parentid": 0
}
}
哦,謝謝。這正是我一直在尋找的。稍後當我回家時我會嘗試。 – BeatzCraft
你要求至少3個問題中的一個。 1.是否通過MySQL獲取數據並使用php工作2.如何遍歷結果3.如何將php數組/對象轉換爲json('json_encode()'btw。)。請澄清你的需求,告訴我們你到目前爲止所嘗試過的。 –
所以我沒有任何麻煩,使用json_encode或做簡單或聯合MySQL查詢。所以從技術方面來說,我對所有需要做的動作有基本的瞭解。 問題是,我想不出一種方式來通過數據查詢,以便我得到多維數組,然後我可以轉換成json – BeatzCraft