Come visualizzare selezionare più drop down dall’uso di array in php?

Voglio cadere come genitore, bambino significa taser multilivello usando i CSS di bootstrap. Ho provato quello sotto, ma sto ricevendo tutti i nomi dei corsi in child.I want drop down like

Linux – Nozioni di base di Linux

CSS – Nozioni di base su CSS

Di seguito è riportato il mio codice:

 

Di seguito è il mio array Valore:

  Array ( [mainCourse] => Array ( [0] => linux [slug] => Array ( [0] => linux [1] => linux-basics [2] => first-steps [3] => last [4] => sdd [5] => css [6] => css-basics [7] => css-introduction [8] => linux-sub [9] => test-sub-sub-linux ) [1] => linux Basics [2] => first steps [3] => last [4] => sdd [5] => css [6] => css Basics [7] => css Introduction [8] => linux sub [9] => test sub sub linux ) ) $arrCourses = $this->objWsCoursesModel->getMainMenuCourses(); //print_r($arrCourses); $outResults = array(); for($i=0; $i<count($arrCourses); $i++){ $courseName = isset($arrCourses[$i]['course_name']) ? $arrCourses[$i]['course_name'] : ''; $outResults['mainCourse'][] = $courseName; $outResults['mainCourse']['slug'][] = isset($arrCourses[$i]['course_slug_name']) ? $arrCourses[$i]['course_slug_name'] : ''; } 

Stai creando un array molto complesso che sarà difficile da implementare;)

Prova questo array:

 $arrCourses = $this->objWsCoursesModel->getMainMenuCourses(); $outResults = array(); for($i=0; $i 

E prova questo codice. Questa è una specie di codice approssimativo. Non sono sicuro di alcun errore di syntax ma penso che funzionerà in questo modo:

 
    $valArrMenu){ ?>

Puoi provare in questo modo, che restituisce il valore in un formato Array. Ho usato questa funzione per Albero della categoria object,

  function categoryDropDown($categoryArray, $parentId, $level, $options) { $level++; foreach ($categoryArray as $array) { if($array['parentId'] == $parentId) { $opt = $array['name'] ; $categoryLevel = $level -1; $options[$array['id']] = array("id"=> $array['id'], "categoryName"=>"$opt","level" => "$categoryLevel", "status" => $array['status']); $newParent = $array['id']; $options = categoryDropDown($categoryArray, $newParent, $level , $options); } } return $options; } 

—-produzione—-

  $options= categoryDropDown(); //now it will converted into an Array. 

così puoi stampare opzioni come questa

    //Which is similar to   

L’output della matrice è come sotto (qui l’indice è una chiave primaria dal mio DataBase)

 Array ( [1] => Array ( [id] => 1 [categoryName] => Electronics [level] => 0 [status] => d ) [3] => Array ( [id] => 3 [categoryName] => Laptops [level] => 1 [status] => a ) [6] => Array ( [id] => 6 [categoryName] => Laptop Accessories [level] => 2 [status] => a ) [2] => Array ( [id] => 2 [categoryName] => Mobile [level] => 1 [status] => a ) [5] => Array ( [id] => 5 [categoryName] => Mobile Accessories [level] => 2 [status] => d ) [4] => Array ( [id] => 4 [categoryName] => Tablet [level] => 1 [status] => a ) [12] => Array ( [id] => 12 [categoryName] => Fashion [level] => 0 [status] => a ) [13] => Array ( [id] => 13 [categoryName] => Men [level] => 1 [status] => a ) [15] => Array ( [id] => 15 [categoryName] => Jeans [level] => 2 [status] => a ) [14] => Array ( [id] => 14 [categoryName] => Women [level] => 1 [status] => a ) [16] => Array ( [id] => 16 [categoryName] => Jeans [level] => 2 [status] => a ) [11] => Array ( [id] => 11 [categoryName] => Main Category 2 [level] => 0 [status] => a ) [33] => Array ( [id] => 33 [categoryName] => temp [level] => 0 [status] => a ) ) 

Puoi anche fare riferimento a Albero ricorsivo semplice in PHP / MySQL

Sì, la soluzione di munjal è corretta. e inoltre stai creando una struttura di array molto complessa. Se sei bravo con jquery e json parsing che semplicemente, nella pagina carica chiamata js function dove crei json array per la struttura del tuo menu. e da db puoi gestirlo facilmente.

Quindi, ecco la mia modifica al problema, non so se ho interpretato correttamente il problema:

 $config['LIVE_URL'] = 'https://example.com/' $arr_courses = $this->objWsCoursesModel->getMainMenuCourses(); $menu_data = []; for ($i = 0; $i < count($arr_courses); $i++) { $course_name = isset($arr_courses[$i]['course_name']) ? $arr_courses[$i]['course_name'] : ''; $menu_data['mainCourse'][$course_name]['title'][$i] = $course_name; $menu_data['mainCourse'][$course_name]['slug'][$i] = isset($arr_courses[$i]['course_slug_name']) ? $arr_courses[$i]['course_slug_name'] : ''; } // $menu_data should look something like this $menu_data = [ 'linux' => [ 'title' => [ 'linux Basics', 'first steps', 'last', 'sdd', 'linux sub', 'test sub sub linux', ], 'slug' => [ 'linux-basics', 'first-steps', 'last', 'sdd', 'linux-sub', 'test-sub-sub-linux', ], ], 'css' => [ 'title' => [ 'css', 'css Basics', 'css Introduction', ], 'slug' => [ 'css', 'css-basics', 'css-introduction', ], ] ]; ?>  

Quali uscite:

 linux (href="#") linux Basics (href=https://example.com/courses/linux-basics) first steps (...) last sdd linux sub test sub sub linux css (href ="#") css (href=https://example.com/courses/css) css Basics (...) css Introduction 

Da questo puoi aggiungere css per adattarlo correttamente, il che non dovrebbe essere un problema.