#1 coolcool1265
Jake,我在做无限极分类的时候,用到时是左右值的方法。但是当我取出子目录【校内新闻】的父目录【新闻】时,不知道应该用哪种方法来形成path,如【新闻--》校内新闻】,而且还要有超链接。现在做到的第一步,就遇到了一个问题。两个数组的合并。array_merge肯定是不行的了,我看了array其他的函数,除了array_merge_recursive函数外,其他函数都没有这个功能。但是这个函数是递归调用,会不会很费资源?
因为path是经常要用到的,所以想问问,如果利用左右值,有什么更好的方法没?
希望能提供一个范例。
下面是两个数组
Array
(
[id] => 5
[parentid] => 3
[name] => 校内新闻
[cover] => 0
[leftvalue] => 3
[rightvalue] => 4
)
Array
(
[id] => 3
[parentid] => 0
[name] => 新闻
[cover] => 0
[leftvalue] => 2
[rightvalue] => 7
)
//---array_merge_recursive 合并后出现的结果---
Array
(
[id] => Array
(
[0] => 5
[1] => 3
)
[parentid] => Array
(
[0] => 3
[1] => 0
)
[name] => Array
(
[0] => 校内新闻
[1] => 新闻
)
[cover] => Array
(
[0] => 0
[1] => 0
)
[leftvalue] => Array
(
[0] => 3
[1] => 2
)
[rightvalue] => Array
(
[0] => 4
[1] => 7
)
)
这个是我的sql
--
-- 表的结构 `spalbum`
--
CREATE TABLE IF NOT EXISTS `spalbum` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`parentid` int(3) NOT NULL,
`name` varchar(11) CHARACTER SET utf8 NOT NULL,
`cover` int(11) NOT NULL,
`leftvalue` int(3) NOT NULL,
`rightvalue` int(3) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=16 ;
--
-- 转存表中的数据 `spalbum`
--
INSERT INTO `spalbum` (`id`, `parentid`, `name`, `cover`, `leftvalue`, `rightvalue`) VALUES
(1, -1, '_root_', 0, 1, 24),
(3, 0, '新闻', 0, 2, 7),
(10, 0, '教研', 0, 12, 23),
(5, 3, '校内新闻', 0, 3, 4),
(6, 3, '校外新闻', 0, 5, 6),
(7, 0, '公告', 0, 8, 9),
(8, 0, '德育', 0, 10, 11),
(11, 10, '语文', 0, 13, 18),
(12, 10, '数学', 0, 19, 20),
(13, 10, '英语', 0, 21, 22),
(14, 11, '精彩案例', 0, 14, 15),
(15, 11, '教学研究', 0, 16, 17);
2011-03-08 23:54:45