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);