私は多次元ツリーを構築する必要があるこの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);
$tree と $rs を使用して「buildTree」関数を作成し、すべてのメニューとサブメニューを一度に表示する出力を、その深さに関係なく作成する必要があります。このようなもの:
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
)
)
仕事で承認されるには、この演習を完了する必要があります。
しかし、関数を構築するためのロジックが見つかりませんでした。誰か助けて ???お願いします