
正文
百万数据无限分类PHP 百万数据处理
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
几十万条数据用PHP递归能实现无限级分类吗
可以做树状结构,先查询第一层,然后当展开第二层
的时候,用ajax去查询下一层的信息,如果感觉慢的
话可以给表做索引,也可以做分表处理,几十万不是
太大的数据
相关问答
Q1: 如何使用PHP实现无限级分类
你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了。
这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,巧在引用,整理分享了。
复制代码代码如下:
function generateTree($items){
$tree = array();
foreach($items as $item){
if(isset($items[$item['pid']])){
$items[$item['pid']]['son'][] = $items[$item['id']];
}else{
$tree[] = $items[$item['id']];
}
}
return $tree;
}
$items = array(
1 = array('id' = 1, 'pid' = 0, 'name' = '安徽省'),
2 = array('id' = 2, 'pid' = 0, 'name' = '浙江省'),
3 = array('id' = 3, 'pid' = 1, 'name' = '合肥市'),
4 = array('id' = 4, 'pid' = 3, 'name' = '长丰县'),
5 = array('id' = 5, 'pid' = 1, 'name' = '安庆市'),
);
print_r(generateTree($items));
可以看到下面打印的结果:
复制代码代码如下:
Array
(
[0] = Array
(
[id] = 1
[pid] = 0
[name] = 安徽省
[son] = Array
(
[0] = Array
(
[id] = 3
[pid] = 1
[name] = 合肥市
[son] = Array
(
[0] = Array
(
[id] = 4
[pid] = 3
[name] = 长丰县
)
)
)
[1] = Array
(
[id] = 5
[pid] = 1
[name] = 安庆市
)
)
)
[1] = Array
(
[id] = 2
[pid] = 0
[name] = 浙江省
)
)
上面生成树方法还可以精简到5行:
复制代码代码如下:
function generateTree($items){
foreach($items as $item)
$items[$item['pid']]['son'][$item['id']] = $items[$item['id']];
return isset($items[0]['son']) ? $items[0]['son'] : array();
}
上面这种无限极分类数据树形结构化的方法值得借鉴。但是我觉得这段代码实际用途并不明显啊,你想取出格式化的树形数据还是要递归啊:
复制代码代码如下:
/**
* 如何取数据格式化的树形数据
*/
$tree = generateTree($items);
function getTreeData($tree){
foreach($tree as $t){
echo $t['name'].'br';
if(isset($t['son'])){
getTreeData($t['son']);
}
}
}
getTreeData($tree);
Q2: php无限分类怎么弄
无限分类?是指自己可以随意添加分类,然后全部显示出来?
加个条件循环就可以了!
$type=mysql_query("select * from type order by id desc"); //查询表type,也就是分类的表
?php do { ?
需要输出的内容如:?php echo $row['type']; ?
?php } while ($row= mysql_fetch_assoc($type)); //在数据库中取值?
Q3: 如何用php实现添加无限分类?类似织梦后台那种可以无限添加分类
数据库设置3个字段 id name fid fid就是顶级id的意思
id name fid
1 分类1 0
2 分类2 0
3 分类1-1 1
4 分类1-2 1
5 分类2-1 2
6 分类2-2 2
数据库就是这种模式,fid为0的是最大分类。id为3 和 4的分类 是id 为 1 分类的子分类 ,所以fid都为 1 。5和6 是id 为 2的子分类。
你查找数据库的时候查找 fid=0的数据 ,找出顶级分类 1 和 2 ,再查找fid分别为 1 和 2的分类,就是对应的子类,你用foreach遍历出来就是了,
关于百万数据无限分类PHP和百万数据处理的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







