无限分类存储及PHP高效展现数组处理(二)

本方承接上我的上一篇文章, 上一篇说的是高效的去处理一个无限级数. 当时我用的方法是处理成字符串, 拼接后再eval处理. 那么本文再讲述另外一种处理方式. 

申明一下.  这种方法不是我自己想到的, 是我在讲了之前那种方法后, 一个同事想到后和我分享的. 我觉得好的东西, 应该拿到网络上来分享一下.   

好的, 言归正转: 数据存储结构可以和之前的一样. 


这种方法的核心是使用PHP的引用 . 下面直接上Code. 如果有什么不明白的, 可以回复问. - - 

<?php
mysql_connect("10.1.59.222:3306", 'root', '123456');
mysql_select_db('demo');
mysql_query("SET NAMES UTF8");

$sql = "select id, catpath as fullpath, name from category order by fullpath";

$result = mysql_query($sql);
$rows = array();
while (false !== ($row = mysql_fetch_array($result, MYSQL_ASSOC)))
{
	$row['name'] = iconv('utf-8', 'gbk', $row['name']);
	$rows[] = $row;
}
$tree = array();
$temp = array();
foreach ($rows as $k => $v)
{
	$temp[$v['id']]['id'] = $v['id'];
	$temp[$v['id']]['pid'] = $v['pid'];
	$temp[$v['id']]['name'] = $v['name'];
	$temp[$v['id']]['leaf'] = true;
}
foreach ($temp as $k => $v)
{
	if (isset($temp[$v['pid']]))
	{
		$temp[$v['pid']]['expanded'] = true;
		$temp[$v['pid']]['leaf'] = false;
		$temp[$v['pid']]['children'][] = &$temp[$v['id']];
	}
	else 
	{
		$tree[] = &$temp[$v['id']];
	}
}

unset($temp);

我想这样大家应该可以直白的看明白 . - - ,  不多说.  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值