源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-11-06 13:35 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:利用php递归实现无限分类 格式化数组的详解
我们要做一个商品的无限分类 [b]首先数据库字段为: [/b]id ----------商品主键id fid ---------- 商品父id name ---------- 商品名 [b]最后输出的数组格式为 [/b]
[u]复制代码[/u] 代码如下:
<PRE class=php name="code"><PRE class=php name="code">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() )</PRE><BR> <PRE></PRE> <PRE></PRE> php代码: <P></P> <P></P> <PRE class=php name="code"><?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 '<pre>'; $result = get_array(); print_r($result); </PRE><BR> <BR> <P></P> <P> </P> <P>函数首先查询出所有fid为0的类</P> <P>通过while逐个循环进行回调查找fid为当前类的id的子类</P> <P><BR> </P> <P><BR> </P> <BR> <BR> <PRE></PRE> </PRE>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部