• 不遗留问题menu数据拼装


     1 DROP TABLE IF EXISTS `menu0910`;
     2 CREATE TABLE `menu0910` (
     3   `id` bigint(20) NOT NULL AUTO_INCREMENT,
     4   `menu` varchar(50) COLLATE utf8_unicode_ci DEFAULT '',
     5   `parentid` bigint(20) DEFAULT '0',
     6   PRIMARY KEY (`id`)
     7 ) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
     8 
     9 -- ----------------------------
    10 -- Records of menu0910
    11 -- ----------------------------
    12 INSERT INTO `menu0910` VALUES ('1', '1-1', '0');
    13 INSERT INTO `menu0910` VALUES ('2', '1-2', '0');
    14 INSERT INTO `menu0910` VALUES ('3', '1-3', '0');
    15 INSERT INTO `menu0910` VALUES ('4', '1-1-1', '1');
    16 INSERT INTO `menu0910` VALUES ('5', '1-1-2', '1');
    17 INSERT INTO `menu0910` VALUES ('6', '1-1-3', '1');
    18 INSERT INTO `menu0910` VALUES ('7', '1-2-1', '2');
    19 INSERT INTO `menu0910` VALUES ('8', '1-2-2', '2');
    20 INSERT INTO `menu0910` VALUES ('9', '1-2-3', '2');
    21 INSERT INTO `menu0910` VALUES ('10', '1-3-1', '3');
    22 INSERT INTO `menu0910` VALUES ('11', '1-3-2', '3');
    23 INSERT INTO `menu0910` VALUES ('12', '1-3-3', '3');
    24 INSERT INTO `menu0910` VALUES ('13', '1-1-1-1', '4');
    25 INSERT INTO `menu0910` VALUES ('14', '1-1-1-2', '4');
    26 INSERT INTO `menu0910` VALUES ('15', '1-1-1-3', '4');
    27 INSERT INTO `menu0910` VALUES ('16', '1-1-2-1', '5');
    28 INSERT INTO `menu0910` VALUES ('17', '1-1-2-2', '5');
    29 INSERT INTO `menu0910` VALUES ('18', '1-1-2-3', '5');
    30 INSERT INTO `menu0910` VALUES ('19', '1-1-3-1', '6');
    31 INSERT INTO `menu0910` VALUES ('20', '1-1-3-2', '6');
    32 INSERT INTO `menu0910` VALUES ('21', '1-1-3-3', '6');
    33 INSERT INTO `menu0910` VALUES ('22', '1-2-1-1', '7');
    34 INSERT INTO `menu0910` VALUES ('23', '1-2-1-2', '7');
    35 INSERT INTO `menu0910` VALUES ('24', '1-2-1-3', '7');
    36 INSERT INTO `menu0910` VALUES ('25', '1-2-2-1', '8');
    37 INSERT INTO `menu0910` VALUES ('26', '1-2-2-2', '8');
    38 INSERT INTO `menu0910` VALUES ('27', '1-2-2-3', '8');
    39 INSERT INTO `menu0910` VALUES ('28', '1-2-3-1', '9');
    40 INSERT INTO `menu0910` VALUES ('29', '1-2-3-2', '9');
    41 INSERT INTO `menu0910` VALUES ('30', '1-2-3-3', '9');
    42 INSERT INTO `menu0910` VALUES ('31', '1-3-1-1', '10');
    43 INSERT INTO `menu0910` VALUES ('32', '1-3-1-2', '10');
    44 INSERT INTO `menu0910` VALUES ('33', '1-3-1-3', '10');
    45 INSERT INTO `menu0910` VALUES ('34', '1-3-2-1', '11');
    46 INSERT INTO `menu0910` VALUES ('35', '1-3-2-2', '11');
    47 INSERT INTO `menu0910` VALUES ('36', '1-3-2-3', '11');
    48 INSERT INTO `menu0910` VALUES ('37', '1-3-3-1', '12');
    49 INSERT INTO `menu0910` VALUES ('38', '1-3-3-2', '12');
    50 INSERT INTO `menu0910` VALUES ('39', '1-3-3-3', '12');
    <?php
    $mysqli = new mysqli('localhost', 'root', '', 'w');
    
    if ($mysqli->connect_errno) {
        printf("Connect failed: %s\n", $mysqli->connect_error);
        exit();
    }
    
    $menulist = array();
    /* Select queries return a resultset */
    if ($result = $mysqli->query("SELECT * FROM menu0910")) {
        printf("Select returned %d rows.\n", $result->num_rows);
    
        /* free result set */
    
        while ($row = $result->fetch_assoc()) {
            $menulist[] = $row;
        }
    
        $result->close();
    }
    
    var_dump($menulist);
    
    //筛选出3级idlist->2级->1级
    $idlist_3 = array();
    $idlist_2 = array();
    $idlist_1 = array();
    $idlist_1_2_3 = array();
    $idlist_1_2 = array();
    foreach($menulist as $menu)
    {
        $idlist_1_2_3[] = $menu['id'];
    }
    var_dump($idlist_1_2_3);
    foreach($menulist as $menu)
    {
        if($menu['parentid']!=0)$idlist_1_2[] = $menu['parentid'];
    }
    $idlist_1_2=array_unique($idlist_1_2);
    var_dump($idlist_1_2);
    foreach($idlist_1_2_3 as $id)
    {
        if(!in_array($id,$idlist_1_2)) $idlist_3[] = $id;
    }
    var_dump($idlist_3);
    foreach($idlist_3 as $id)
    {
        $idlist_2[] = get_parentid($id);
    }
    $idlist_2=array_unique($idlist_2);
    var_dump($idlist_2);
    
    foreach($idlist_2 as $id)
    {
        $idlist_1[] = get_parentid($id);
    }
    $idlist_1=array_unique($idlist_1);
    var_dump($idlist_1);
    
    
    function get_parentid($id)
    {
        global $menulist;
        foreach($menulist as $one)
        {
            if($one['id']==$id) RETURN $one['parentid'];
        }
    }
    
    $res = array();
    foreach($idlist_1 as $one)
    {
        $res[] = $one;
    }
    var_dump($res);
    
    $w = 0;
    foreach($res as $id1)
    {
        $tmp = array();
        foreach($idlist_2 as $id2)
        {
           if(get_parentid($id2) == $id1)$tmp[]=$id2;
        }
        $res[]=$tmp;
    }
    var_dump($res);
  • 相关阅读:
    基于C#和Asp.NET MVC开发部标视频和苏标主动安全监控平台
    基于Java Netty框架构建高性能的部标808协议的GPS服务器
    交通部796部标平台开发索引
    GPS部标监控平台的功能设计(一)-功能列表
    基于Java Mina框架的部标jt808服务器设计和开发
    基于Asp.NET MVC框架+SignalR +ActiveMQ + Ali OSS 服务构建苏标主动安全智能防控平台
    部标809协议2019版本与2011版本的区别
    出租车Jt/T 905协议与部标1078协议融合的网约车视频监控平台
    基于JT/T 1078协议设计和开发部标视频服务器
    基于Html5+HLS协议播放符合部标1078协议的实时流媒体视频
  • 原文地址:https://www.cnblogs.com/rsapaper/p/5928385.html
Copyright © 2020-2023  润新知