有一个分类表 calssID -----唯一标识
pid -----父级ID
name -----名字
path -----路径CREATE TABLE `calss` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`pid` int(11) NOT NULL DEFAULT '0',
`name` varchar(32) NOT NULL,
`path` varchar(32) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;现在求一个路径的写法例如数据如下 INSERT INTO calss VALUES ('1', '0', 'WEB开发',web);
INSERT INTO calss VALUES ('2', '1', '后端',control);
INSERT INTO calss VALUES ('3', '2', '语言',language);
INSERT INTO calss VALUES ('4', '2', '数据库',data);
INSERT INTO calss VALUES ('5', '3', 'php',php);
INSERT INTO calss VALUES ('6', '3', 'jsp',jsp);
INSERT INTO calss VALUES ('7', '3', 'asp',asp);
INSERT INTO calss VALUES ('8', '0', '手机应用开发',phone);
INSERT INTO calss VALUES ('9', '8', 'ios',ios);求 php类别的 路径
最终结果如下格式
$php_path="web/control/language/php/";
求个具体php代码实现 感激不尽 据说用到递归思想 我看了一天递归 楞是没看明白 递归的思想 可否能不用递归实现,用递归实现的 请帮忙写清楚每一句代码注释 感激不尽了
最后一句 老大 你好 妞哥 你好
pid -----父级ID
name -----名字
path -----路径CREATE TABLE `calss` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`pid` int(11) NOT NULL DEFAULT '0',
`name` varchar(32) NOT NULL,
`path` varchar(32) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;现在求一个路径的写法例如数据如下 INSERT INTO calss VALUES ('1', '0', 'WEB开发',web);
INSERT INTO calss VALUES ('2', '1', '后端',control);
INSERT INTO calss VALUES ('3', '2', '语言',language);
INSERT INTO calss VALUES ('4', '2', '数据库',data);
INSERT INTO calss VALUES ('5', '3', 'php',php);
INSERT INTO calss VALUES ('6', '3', 'jsp',jsp);
INSERT INTO calss VALUES ('7', '3', 'asp',asp);
INSERT INTO calss VALUES ('8', '0', '手机应用开发',phone);
INSERT INTO calss VALUES ('9', '8', 'ios',ios);求 php类别的 路径
最终结果如下格式
$php_path="web/control/language/php/";
求个具体php代码实现 感激不尽 据说用到递归思想 我看了一天递归 楞是没看明白 递归的思想 可否能不用递归实现,用递归实现的 请帮忙写清楚每一句代码注释 感激不尽了
最后一句 老大 你好 妞哥 你好
某个pid为0,终止这个过程,,逆序就是路径
不太明白 求码 求一个统一写法啊 我不一定非要求PHP类的路径 我还有可能求别的类路径 万分感谢
//自己生成一个字段id为数组key的数组
$a[1] = array('1', '0', 'WEB开发','web');
$a[2] = array('2', '1', '后端','control');
$a[3] = array('3', '2', '语言','language');
$a[4] = array('4', '2', '数据库','data');
$a[5] = array('5', '3', 'php','php');
$a[6] = array('6', '3', 'jsp','jsp');
$a[7] = array('7', '3', 'asp','asp');
$a[8] = array('8', '0', '手机应用开发','phone');
$a[9] = array('9', '8', 'ios','ios');
function getPath($id,$arr)
{
$path = array();
while(isset($arr[$id]))
{
array_unshift($path,$arr[$id][3]);
$id = $arr[$id][1];
}
return $path;
}
echo implode(DIRECTORY_SEPARATOR,getPath(5,$a));
echo PHP_EOL;
echo implode(DIRECTORY_SEPARATOR,getPath(7,$a));
echo PHP_EOL;
echo implode(DIRECTORY_SEPARATOR,getPath(4,$a));
?>