[英]Multidimension array tree Menu-Submenu function
我有這個PHP問題,我應該在其中建立一個多維樹。
這些是數組中的字符串:
>nro_menu > Menu ID |
dsc_menu > Menu description |
nro_menu_fk > The parentmenu ID (menu > submenu) |
nro_ordem_menu > Show the order of childmenu inside the parentmenu
leaf > "Y" > it's a leaf, no childmenu / "N" > not a leaf, does have childmenu |
並且提供了PHP代碼:
$rs = array(
array(
'nro_menu' => 3136,
'dsc_menu' => 'Pedidos',
'nro_menu_fk' => 1,
'nro_ordem_menu' => '{0}',
'leaf' => 'n'
),
array(
'nro_menu' => 3137,
'dsc_menu' => 'Relatórios',
'nro_menu_fk' => 1,
'nro_ordem_menu' => '{1}',
'leaf' => 'n'
),
array(
'nro_menu' => 4119,
'dsc_menu' => 'Lançar',
'nro_menu_fk' => 3136,
'nro_ordem_menu' => '{0,0}',
'leaf' => 'y'
),
array(
'nro_menu' => 4120,
'dsc_menu' => 'Manutenção',
'nro_menu_fk' => 3136,
'nro_ordem_menu' => '{0,1}',
'leaf' => 'y'
),
array(
'nro_menu' => 3138,
'dsc_menu' => 'Emitir Pedido',
'nro_menu_fk' => 3137,
'nro_ordem_menu' => '{1,0}',
'leaf' => 'y'
),
array(
'nro_menu' => 3139,
'dsc_menu' => 'Pedidos Colocados No Mês',
'nro_menu_fk' => 3137,
'nro_ordem_menu' => '{1,1}',
'leaf' => 'y'
),
array(
'nro_menu' => 3140,
'dsc_menu' => 'Histórico Do Cliente',
'nro_menu_fk' => 3137,
'nro_ordem_menu' => '{1,2}',
'leaf' => 'y'
),
array(
'nro_menu' => 3141,
'dsc_menu' => 'Entregas Efetuadas',
'nro_menu_fk' => 3137,
'nro_ordem_menu' => '{1,3}',
'leaf' => 'y'
)
);
$tree = array();
buildTree($tree, $rs);
echo "<pre>", print_r($tree, true);
我必須構建“ buildTree”函數,使用$ tree和$ rs創建一個輸出,該輸出一次顯示所有菜單和子菜單,無論它們的深度如何。 像這樣:
Array
(
[Pedidos] => Array
(
[Lançar] => 4119
[Manutenção] => 4120
)
[Relatórios] => Array
(
[Emitir Pedido] => 3138
[Pedidos Colocados No Mês] => 3139
[Histórico do Cliente] => 3140
[Entregas Efetuadas] => 3141
)
)
我需要完成此練習才能獲得工作批准。
但是我沒有發現構造函數的邏輯。 誰來幫幫我 ??? 請
嘗試這個:
function buildTree($ary){
$output = '';
foreach($ary as $a){
$output .= '<dl>';
foreach($a as $i => $v){
$output .= "<dt>$i</dt><dd>$v</dd>";
}
$output .= '</dl>';
}
return $output;
}
echo buildTree($rs);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.