php思想之:默认菜单与新菜单

大致效果如图客户可以随便编辑菜单;ajax编辑或全部保存操作:



public function getData()
{
    $store = $this->getStore();
    $data = Option::get('user_center_data', $this->store_id);   //获取用户中心菜单数据

    $default_data = $this->getDefaultData();                     //获取默认数据
    if (!$data) {                                                
        $data = $default_data;                                   //这几行代码就是精髓所在
    } else {
        $data = json_decode($data, true);
        $data = $this->checkData($data, $default_data);
    }

    $arr = ['/pages/web/authorization/authorization'];
    foreach ($data['menus'] as $i => $menu) {
        if ($menu['id'] == 'dianhua') {
            $data['menus'][$i]['tel'] = $store->contact_tel;
        }

        // 去除支付宝不需要的菜单
        if ($this->_platform === 'my' && in_array($menu['url'], $arr)) {
            unset($data['menus'][$i]);
        }
    }
    $data['menus'] = array_values($data['menus']);
    return [
        'code' => 0,
        'data' => $data,
        'menu_list' => $default_data['menus'],
    ];
}

 

 

//下面这部分的代码思想!!!完美;使用2个数组重新规划出一个新数组

public function checkData($list = array(), $default_list = array())
{
    $new_list = [];
    foreach ($default_list as $index => $value) {
        if (isset($list[$index])) {
            if (is_array($value) && $index != 'menus') {
                $new_list[$index] = $this->checkData($list[$index], $value);
            } else {
                $new_list[$index] = $list[$index];
            }
        } else {
            $new_list[$index] = $value;
        }
    }
    return $new_list;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值