Jump to content

wJesus56

Members
  • Posts

    12
  • Joined

  • Last visited

wJesus56's Achievements

Member

Member (2/5)

0

Reputation

  1. I'm trying to make a low-level multi-level menu from PHP array . I use lists to make the menu drop-down. I use a function to bring an array to a list, but the function I use has a problem with generating links to menu items. Is there anyone here who could help with the refinement of the function? Example: link to bigbanans in cats2 must be: cat2/items2/banans/bigbanans <!DOCTYPE html> <html> <head> <title>jQuery Slideshow - sjoloughlin</title> <meta charset="utf-8"> <style> nav ul { list-style: none; padding: 0; text-align:center; } nav li { background-color: rgba(0,100,0,0.5); position: relative; display: inline-block; } nav li:hover { background-color: rgba(100,0,0,0.5) } nav a { display:block; padding: 0.5em; text-decoration: none; color: rgba(0,0,100,0.9); } nav ul ul { display: none; position: absolute; } nav li:hover > ul { display: block; } nav ul ul ul { left: 100%; top: 0; } nav > ul > li > ul > li { min-width: 100%; } </style> </head> <?php function is_multidimensional(array $array) { return count($array) !== count($array, COUNT_RECURSIVE); } function printArrayList($array, $last) { $pathstring =""; echo "<ul>\n"; $path=$last; foreach ($array as $k => $v) { if (strpos($k, "option")=="") { $path[]= $k; } $fullpath= implode("/", $path); if (is_array($v)) { echo "<li><a href=".$fullpath.">".$k."</a>\n"; if (is_multidimensional($v)) { printArrayList($v, $path); } else { // unset($path); $path=array(); } continue; } if (strpos($k, "option")>0) { } else { echo "<li>" . $k . " " . $v . ""; } // } else { echo "<li>" . $k . " " . $v . "</li>"; } } echo "</ul>\n"; } $menu = array( 'Cat1' => array( 'FORCATEGORY_NUMBER1_option' => "1", 'FORCATEGORY_NUMBER2_option' => "2", 'FORCATEGORY_NUMBER3_option' => "3", "ITEMS1" => array( 'FORCATEGORY_NUMBER1_option' => "1", 'FORCATEGORY_NUMBER2_option' => "2", 'FORCATEGORY_NUMBER3_option' => "3", "Apples" => array( 'FORCATEGORY_NUMBER1_option' => "111", 'FORCATEGORY_NUMBER2_option' => "2", ), "Banans" => array( 'FORCATEGORY_NUMBER1_option' => "1", 'FORCATEGORY_NUMBER2_option' => "2", ), ), "ITEMS2" => array( 'FORCATEGORY_NUMBER1_option' => "1", 'FORCATEGORY_NUMBER2_option' => "2", 'FORCATEGORY_NUMBER3_option' => "3", "Apples" => array( 'FORCATEGORY_NUMBER1_option' => "1", 'FORCATEGORY_NUMBER2_option' => "2", ), "Banans" => array( 'FORCATEGORY_NUMBER1_option' => "1", 'FORCATEGORY_NUMBER2_option' => "2", ), ), ) , 'Cat2' => array( 'FORCATEGORY_NUMBER1_option' => "1", 'FORCATEGORY_NUMBER2_option' => "2", 'FORCATEGORY_NUMBER3_option' => "3", "ITEMS1" => array( 'FORCATEGORY_NUMBER1_option' => "1", 'FORCATEGORY_NUMBER2_option' => "2", 'FORCATEGORY_NUMBER3_option' => "3", "Apples" => array( 'FORCATEGORY_NUMBER1_option' => "1", 'FORCATEGORY_NUMBER2_option' => "2", ), "Banans" => array( 'FORCATEGORY_NUMBER1_option' => "1", 'FORCATEGORY_NUMBER2_option' => "2", ), ), "ITEMS2" => array( 'FORCATEGORY_NUMBER1_option' => "1", 'FORCATEGORY_NUMBER2_option' => "2", 'FORCATEGORY_NUMBER3_option' => "3", "Apples" => array( 'FORCATEGORY_NUMBER1_option' => "1", 'FORCATEGORY_NUMBER2_option' => "2", ), "Banans" => array( 'FORCATEGORY_NUMBER1_option' => "1", 'FORCATEGORY_NUMBER2_option' => "2", ), ), ) , ); ?> <body> <nav> <?PHP printArrayList($menu, $last=array()); ?> </nav> </body> </html>
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.