View difference between Paste ID: ykRu9pcG and B72rBKY8
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);