我擁有一組組織及其董事會成員。 所有組織都有董事會成員,許多董事會成員都在多個組織的董事會中。通過相關實體正確遞歸
我使用JIT Hypertree來說明它們之間的關係。 JIT Hypertree模式要求一個項目是所有項目的父項目,並且基於單個JSON數組繪製。
我很想重新定位事件查詢並根據更改重新填充圖形。然後2級會很好,但我還沒有能夠解決如何做到這一點。
我目前使用的代碼是從起始組織手動遞歸三個級別,但我想要的是重新詛咒所有相關記錄。
所以它將從一個組織開始,並添加組織的孩子們(董事會成員)。然後爲每個董事會成員提取所有董事會(當前組織除外),並將其添加爲董事會成員的子女。
這樣會持續下去,直到每條線索都死了 - 大概是隻屬於一個董事會的董事會成員。
任何人都有如何創建此數組,並避免重複的建議?
$board = $center->board();
$top['id'] = $center->ID;
$top['name'] = $center->Org;
$top['children'] = array();
if ($board) {
foreach ($board as $b) {
$child['id'] = $b->ID;
$child['name'] = (strlen(trim($b->Last)) > 0) ? $b->First . ' ' . $b->Last : 'Unknown';
$child['data']['orgname'] = $center->Org;
$child['data']['relation'] = $b->Role;
$child['data']['occupation'] = $b->Occupation;
$child['children'] = array();
$childboards = $b->boards();
if ($childboards) { foreach ($childboards as $cb) {
$gchild['id'] = $cb->ID;
$gchild['name'] = $cb->Org;
$gchild['data']['orgname'] = (strlen(trim($b->Last)) > 0) ? $b->First . ' ' . $b->Last : 'Unknown';
$gchild['children'] = array();
$childboardmembers = $cb->board();
if ($childboardmembers) { foreach ($childboardmembers as $cbm) {
$ggchild['id'] = $cbm->ID;
$ggchild['name'] = (strlen(trim($cbm->Last)) > 0) ? $cbm->First . ' ' . $cbm->Last : 'Unknown';
$ggchild['data']['orgname'] = $cb->Org;
$ggchild['data']['relation'] = $cbm->Role;
$ggchild['data']['occupation'] = $cbm->Occupation;
$ggchild['children'] = array();
$gchild['children'][]= $ggchild;
}}
$child['children'][]= $gchild;
}}
$top['children'][] = $child;
}
}
$top['data'] = array();
$top['data']['description'] = $center->Desc;
echo json_encode($top);
//編輯2011.10.24在Re hakre響應 我的數據結構組織的獨特ID的表,通過唯一的ID人民一個表,然後兩個組織指定一個橋接表(實體)和Person以及Person在實體中扮演的角色。一個典型的多對多。根本沒有子板。我做了一個現在看來毫無意義的圖像,但我會在底部添加它。
的JIT庫數據結構是在一個小堅果(對我來說)它是這樣在他們的樂隊例如:
Top: Nine Inch Nails
Child: Jerome Dillon
Child: Howlin Maggie (another band)
{all the bands' members and then all of their bands...}
所以組織(帶)進行處理,就好像它是一個人連儘管它由許多人組成。當我使用上面的代碼遞歸時,我得到(我認爲)可怕的膨脹,但它使JSON工作正常,儘管膨脹。
例JSON和Example Visualization //結束編輯
嗨hakre,感謝您的答覆!我已經闡明瞭我的模式並對JIT庫JSON的模式進行了評論。請看看它是否影響你的答案。謝謝! – jerrygarciuh