Re: [PHP-ES] menu UL lI recursivo
[email protected] (Mauricio Rodriguez) Mon, 7 Jan 2013 14:14:34 -0600
| Newsgroups | php.general.es |
|---|---|
| Message-ID | <CAN21F=QYHDAe2BVWTY3seY2x4p_wNZ12njHXwc5RrCzHiNr0kw@mail.gmail.com> |
yo use esto:
//printf("arr_mnu: <pre>%s</pre>",print_r($arr_mnu,true)); //exit;
$menu = '
<ul class="dropdown"><!-- menu -->
';
$menu .= array2ul($arr_mnu);
$menu .= '
</ul><!-- close menu -->';
ya le das un echo donde quieras que aparezca.
la funcion auxiliar que convierte un array en una lista:
function array2ul($array, &$ul='', $level=2){
global $mnu_flat;
$ident = str_repeat("\t", $level);
foreach($array as $key => $value)
{
$es_papa = is_array($array[$key]);
if($es_papa)
$ul .= "$ident<li><a href=\"".$mnu_flat[$key]."\">$key</a>";
else
$ul .= "$ident<li><a href=\"$value\">$key</a>";
if( $es_papa )
{
$ul .= "\n$ident<ul class=\"sub_menu\">\n";
array2ul($value, $ul, $level+1);
$ul .= "$ident</ul>\n";
}
$ul .= $es_papa ? "$ident</li>\n" : "</li>\n";
}
return $ul;
}
Level es la dimesion del arreglo.
Saludos.
El 7 de enero de 2013 09:02, Roberto Barreiro <[email protected]>escribió:
> Hola lista
>
> Por mas que lo intento y busco en internet, no encuentro nada que
> funcione..... tengo un array multinivel (les paso solo una pequeña
> parte) con el cual quiero generar un menu ul li multinivel .... no se
> cuantos niveles puedo llegar a tener, por lo que deberia hacerlo con
> una funcion recursiva ... y como he dicho, no encuentro nada en
> internet que pueda adaptar ... alguno de vosotros tiene un link a
> algun ejemplo que me pueda valer??? ..... los ejemplos que he
> encontrado, no logro hacerlos funcionar .... gracias!!!
>
>
> Array
> (
> [7] => Array
> (
> [id_categoria] => 8
> [linklabel] => exteriores
> [parentid] => 7
> [submenu] => Array
> (
> [8] => Array
> (
> [id_categoria] => 9
> [linklabel] => version
> [parentid] => 8
> [submenu] => Array
> (
> [9] => Array
> (
> [id_categoria] => 11
> [linklabel] => Formato DIN2
> [parentid] => 9
> )
>
> )
>
> )
>
> )
>
> )
>
> )
>