2017-02-18 2 views
0

Wie wird ein mehrdimensionales Array einem zweidimensionalen Array zugewiesen? Kategorie Hierarchie in Drop zeigen nach unten. ($ Form_multiselect())Wie wird ein mehrdimensionales Array einem zweidimensionalen Array zugewiesen?

Ich habe diese Tabelle

| id | parent | name | 
|----|--------|---------| 
| 10 |  0 | 'menu1' | 
| 12 |  10 | 'menu2' | 
| 13 |  10 | 'menu3' | 
| 14 |  0 | 'menu4' | 

PHP-Code ist.

function prepare_items($data_from_table_of_database,$parent){ 
    $items = array();  
     foreach ($data_from_table_of_database as $item) { 
      if ($item ['parent'] == $parent) { 
       $items ['id'] = $item; 
       $items ['id'] ['children'] = 
        $this->prepare_items ($data_from_table_of_database, $item ['id']); 
      } 
     } 
    } 

Ich habe Array Code zeigte in unter

Array (
    [107] => Array ([id] => 107 [menu_title] => تست1 [parent] => 0 [sort_order] => 1 [children] => Array ()) 
    [111] => Array ([id] => 111 [menu_title] => تست 4 [parent] => 0 [sort_order] => 1 [children] => Array ( 
      [109] => Array ([id] => 109 [menu_title] => تست 1 [parent] => 111 [sort_order] => 1 [children] => Array ()) 
      [115] => Array ([id] => 115 [menu_title] => تست7 [parent] => 111 [sort_order] => 1 [children] => Array ([110] => Array ([id] => 110 [menu_title] => تست 3 [parent] => 115 [sort_order] => 1 [children] => Array ()))))) 
    [112] => Array ([id] => 112 [menu_title] => تست 4 [parent] => 0 [sort_order] => 1 [children] => Array ()) 
    [113] => Array ([id] => 113 [menu_title] => تست 5 [parent] => 0 [sort_order] => 1 [children] => Array ()) 
    [114] => Array ([id] => 114 [menu_title] => تست شش6 [parent] => 0 [sort_order] => 3 [children] => Array ( 
      [108] => Array ([id] => 108 [menu_title] => تست 2 [parent] => 114 [sort_order] => 1 [children] => Array ()) 
    [118] => Array ([id] => 118 [menu_title] => yeeeeeee [parent] => 114 [sort_order] => 1 [children] => Array ()))) 
    [119] => Array ([id] => 119 [menu_title] => ff [parent] => 0 [sort_order] => 1 [children] => Array (
      [117] => Array ([id] => 117 [menu_title] => shar [parent] => 119 [sort_order] => 1 [children] => Array ()))) 
    ) 

i gleiche Struktur auf einen anderen Array hinzufügen, werden unten

Array (
    [107] => Array ([id] => 107 [menu_title] => تست1 [sort_order] => 2) 
    [111] => Array ([id] => 111 [menu_title] => تست 4 [sort_order] => 3) 
    [109] => Array ([id] => 109 [menu_title] => تست 4 -- تست 1 [sort_order] => 1) 
    [115] => Array ([id] => 115 [menu_title] => تست 4 -- تست7 [sort_order] => 1) 
    [110] => Array ([id] => 110 [menu_title] => تست 4 -- تست7 -- تست 3 [sort_order] => 1) 
    . 
    . 
    . 

    ) 

Frag ich die andere Frage Gestern Related diesem Thema.

that's link.

Ich versuche, eine Multi-Level-Kategorie von $ form-> Multiselect() zu erstellen.

Antwort

0

Ich fand meine Antwort.

private function build_item(&$list,$item,$level,$element_keys){ 
     $list[$item[$element_keys['menu_id']]]=str_repeat(" -> ", $level). $item[$element_keys['menu_title']]; 
    } 

private function build_item_list($items,$element_keys ,$element_keys,$level=0) { 

    foreach ($items as $item) {  
     $this->build_item($this->list,$item,$level,$element_keys); 

      if(count($item['children'])>0){ 
       $this->build_item_list($item['children'],$element_keys,$element_keys,++$level); 
      } 
    } 
    return ($this->list); 
    } 

Es ist generieren Array unter

[1] => Array ([107] => تست1) 
[2] => Array ([111] => تست 4) 
[3] => Array ([109] => -> تست 1) 
[4] => Array ([115] => -> تست7) 
[5] => Array ([110] => -> -> تست 3) 
[6] => Array ([112] => -> تست 4) 
[7] => Array ([113] => -> تست 5) 
[8] => Array ([114] => -> تست شش6) 
[9] => Array ([108] => -> -> تست 2) 

Es ist mein Paradies.

+0

Multi-Level-Kategorie/Menü für Codeigniter https://github.com/hamedhossani/Multi_level_category_multiselect_CodeIgniter –

Verwandte Themen