php去数组中的数据库,php 数据库 取出数组

function get_cls($cid){

$arr = array(

1 => array('id'=>'1','parentid'=>0,'name'=>'一级栏目一'),

2 => array('id'=>'2','parentid'=>0,'name'=>'一级栏目二'),

3 => array('id'=>'3','parentid'=>1,'name'=>'二级栏目一'),

4 => array('id'=>'4','parentid'=>1,'name'=>'二级栏目二'),

5 => array('id'=>'5','parentid'=>2,'name'=>'二级栏目三'),

6 => array('id'=>'6','parentid'=>3,'name'=>'三级栏目一'),

7 => array('id'=>'7','parentid'=>3,'name'=>'三级栏目二')

);

$data = array();

while($arr[$cid]){

$data[] = $arr[$cid]['name'];

$cid = $arr[$cid]['parentid'];

}

$data = array_reverse($data);

return implode(' -- ', $data);

}

echo get_cls(7);

######回复

@Tuesday : 哦,我明白了,那就是再多做一个数组成员的遍历,把id变成是数组的索引,是吗?######回复

@btgoa : 既然能够索引可以是0, 为什么不能换成id值? id肯定是唯一的呀,######回复

@Tuesday : 我的意思是,从数据库拉出来的数组成员的索引号是连续的从0~N,但是出来的数据库表中的id有可能是不连续的,而且有可能是不连续的。 例如: array(0=>array('id'=>500), 1=>array('id'=>608)); 这样的,这样怎么处理呢?######回复

@btgoa : 这有什么关系? pid的值存在就表示有这么一条数组. 不然上哪找它的上级?######这个代码前提是$arr中每个成员的索引号和里面具体的每一行数据的id号必须一致,parentid对应的其实并不是id,而是$arr[x]中的x,而实际从数据库中取出的数据id号并不一定是连续的,这个该怎么解决呢?谢谢!######

http://git.oschina.net/binny_w/pmf/blob/master/classes/TreeList.class.php 你自己再改一下应该就可以用了,不用考虑参数的顺序

$arrData = array (     array (         'id' => 2,         'name' => 'A',         'parent_id' => 14     ),     array (         'id' => 19,         'name' => 'B',         'parent_id' => 18     ),     array (         'id' => 20,         'name' => 'C',         'parent_id' => 18     ),     array (         'id' => 6,         'name' => 'D',         'parent_id' => 0     ),     array (         'id' => 9,         'name' => 'E',         'parent_id' => 0     ),     array (         'id' => 10,         'name' => 'F',         'parent_id' => 0     ),     array (         'id' => 12,         'name' => 'G',         'parent_id' => 10     ),     array (         'id' => 13,         'name' => 'H',         'parent_id' => 6     ),     array (         'id' => 14,         'name' => 'I',         'parent_id' => 9     ),     array (         'id' => 18,         'name' => 'J',         'parent_id' => 13     ),     array (         'id' => 16,         'name' => 'K',         'parent_id' => 2     ) ); $objTL = new TreeList($arrData); print_r($objTL->arrIdBackPath);

能得到这样的树 D   ┊┈ H   ┊  ┊┈ J   ┊  ┊  ┊┈ B   ┊  ┊  ┊┈ C E   ┊┈ I   ┊  ┊┈ A   ┊  ┊  ┊┈ K F   ┊┈ G ######面包屑和树还是有一些区别,这里想实现的其实不是树结构,而是一个路径######

定义顶级省份的PID=0  然后数组的key=id    通过id定位pid  递归查询直到pid=0

整理输出 就可以了

这地区的数组 可以缓存成文件,不用使用数据库,记着使用完数组后 unset 下 ,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值