SHOW:
|
|
- or go back to the newest paste.
1 | <?php | |
2 | $array = null; | |
3 | //========ini udah ok.. tp hrs ada 1 perbaikan ptg disini | |
4 | - | $array[$row->id] = $row; |
4 | + | |
5 | if($row->parent == ""){ | |
6 | - | $array[$row->parent][] = $row; |
6 | + | $menu_parent[0][$row->id] = $row; |
7 | }else{ | |
8 | - | } |
8 | + | $menu_parent[$row->parent][] = $row; |
9 | } | |
10 | } | |
11 | //===========disambung pake coding gw | |
12 | class menu { | |
13 | //put your code here | |
14 | private $menu; | |
15 | function __CONSTRUCT(){ | |
16 | $menu = array( | |
17 | 'top' => array( | |
18 | array(6, 'one menu'), | |
19 | array(1, 'multi menu') | |
20 | ) | |
21 | ); | |
22 | ||
23 | $menu['sub'] = array( | |
24 | '1' => array( | |
25 | array(2, 'one menu'), | |
26 | array(11, 'multi menu') | |
27 | ) | |
28 | ); | |
29 | $menu['sub'][11]=array( | |
30 | array(3, 'one menu'), | |
31 | array(4, 'multi menu') | |
32 | ); | |
33 | $this->menu=$menu; | |
34 | } | |
35 | ||
36 | function update($menu){ | |
37 | $this->menu=$menu; | |
38 | } | |
39 | ||
40 | function get(){ | |
41 | return $this->menu; | |
42 | } | |
43 | ||
44 | function run(){ | |
45 | ||
46 | return $this->get_parent(); | |
47 | } | |
48 | //=============FOKUS pada ini saja | |
49 | function get_parent(){//get_list | |
50 | ||
51 | $data= $this->menu[0];//or parent | |
52 | ||
53 | $raw=array(); | |
54 | foreach($data as $row){ | |
55 | $tmp = array('id'=>$row[0], 'text'=>$row[1]); //mending langsung dibuat gini walau dari query udah melakukannya | |
56 | $have_child=$this->have_child($row[0]); | |
57 | if($have_child){ | |
58 | $tmp['child']=$this->get_child($row[0]); | |
59 | } | |
60 | $raw[]=$tmp; | |
61 | } | |
62 | return $raw; | |
63 | } | |
64 | ||
65 | function have_child($id){ | |
66 | $child=$this->menu['sub']; | |
67 | return isset($child[$id])?TRUE:FALSE; | |
68 | } | |
69 | ||
70 | function get_child($id){ | |
71 | $data = $this->menu[$id];//or child | |
72 | //$data=$data_child[$id]; //asumsikan kamu dapatkan dari query where parent=xxx | |
73 | $raw=array(); | |
74 | foreach($data as $row){ | |
75 | $tmp = array('id'=>$row[0], 'text'=>$row[1]); //mending langsung dibuat gini walau dari query udah melakukannya | |
76 | $have_child=$this->have_child($row[0]); | |
77 | if($have_child){ | |
78 | $tmp['child']=$this->get_child($row[0]); | |
79 | } | |
80 | $raw[]=$tmp; | |
81 | } | |
82 | return $raw; | |
83 | } | |
84 | } | |
85 | ||
86 | $menu = new menu($menu_parent); | |
87 | ||
88 | $ar = $menu->run(); | |
89 | ||
90 | echo '<pre>'.print_r($ar,1). json_encode($ar); |