您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

利用php递归实现无限分类 格式化数组的详解_PHP教程

2024/4/22 12:51:45发布19次查看
我们要做一个商品的无限分类
首先数据库字段为:
id ----------商品主键id
fid ---------- 商品父id
name ---------- 商品名
最后输出的数组格式为
复制代码 代码如下:
array(
 0=>array(
  'id'=>1,
  'fid'=>0,
  'name'=>'法国货'
  'child'=>array(
   0=>array(
    'id'=>12,
    'fid'=>1,
    'name'=>'香水'
    'child'=>array(
     0=>array(
      'id'=>34,
      'fid'=>12,
      'name'=>'女用香水'
     )
    )
   ),
   1=>array(
    'id'=>13,
    'fid'=>1,
    'name'=>'笔记本'
    'child'=>null
   )
  )
 ),
 1=>array(),    //格式同上我就不再重复写了 没什么意义
 2=>array()
)






php代码:
//数据库我用的mysql pdo  但是整个思路又是一样的
$conn=mysql_connect('localhost','root','123');
if(mysql_errno()){
 printf('连接失败'.mysql_error());
}
mysql_select_db('edeng');
mysql_set_charset('utf8');
/*
 *递归函数
 *@param id 要查询fid=$id的所有子类  这里将$id的默认值为设为0  是因为我在数据库中将最顶层的类别的fid设置为0
 */
function get_array($id=0){
 $sql=select id,fid,cname from e_cat where fid= $id;
 $result=mysql_query($sql);
 $arr=array();
 if($result && mysql_affected_rows()){
  while($rows=mysql_fetch_assoc($result)){
$rows['child']=get_array($rows['id']);
   $arr[] = $rows;
  }
  return $arr;
 }

echo '';
$result = get_array();
print_r($result);

函数首先查询出所有fid为0的类
通过while逐个循环进行回调查找fid为当前类的id的子类



http://www.bkjia.com/phpjc/327545.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/327545.htmltecharticle我们要做一个商品的无限分类 首先数据库字段为: id ----------商品主键id fid ---------- 商品父id name ---------- 商品名 最后输出的数组格式为 复...
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product