我有这个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
)
)
我需要完成这项练习才能获得批准。
但是我没有找到构造函数的逻辑。谁来帮帮我 ???请
答案 0 :(得分:0)
试试这个:
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);