栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

使用数组实现PHP无限级分类

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用数组实现PHP无限级分类

            点击(此处)折叠或打开

     

  1.    

  2.   $cates = array(

  3.    array(

  4.     'cid' => 1,

  5.     'cname' => '新闻',

  6.     'pid' => 0

  7.    ),

  8.    array(

  9.     'cid' => 2,

  10.     'cname' => '通知',

  11.     'pid' => 0

  12.    ),

  13.    array(

  14.     'cid' => 3,

  15.     'cname' => '国内新闻',

  16.     'pid' => 1

  17.    ),

  18.    array(

  19.     'cid' => 4,

  20.     'cname' => '国际新闻',

  21.     'pid' => 1

  22.    ),

  23.    array(

  24.     'cid' => 5,

  25.     'cname' => '北京新闻',

  26.     'pid' => 3

  27.    ),

  28.    array(

  29.     'cid' => 6,

  30.     'cname' => '上海新闻',

  31.     'pid' => 3

  32.    ),

  33.    array(

  34.     'cid' => 7,

  35.     'cname' => '紧急通知',

  36.     'pid' => 2

  37.    ),

  38.    array(

  39.     'cid' => 8,

  40.     'cname' => '一般通知',

  41.     'pid' => 2

  42.    ),

  43.   );

  44.  

  45.   function createMenuTree($data = array(), $pid = 0)

  46.   {

  47.    if (empty($data))

  48.    {

  49.     return array();

  50.    }

  51.    static $level = 0;

  52.    $returnArray = array();

  53.    foreach ($data as $node)

  54.    {

  55.     if ($node['pid'] == $pid)

  56.     {

  57.      $returnArray[] = array(

  58.       'cid' => $node['cid'],

  59.       'cname' => $node['cname'],

  60.       'level' => $level

  61.      );

  62.      if (hasChild($node['cid'], $data))

  63.      {

  64.       $level++;

  65.       $returnArray = array_merge($returnArray, createMenuTree($data, $node['cid']));

  66.       $level--;

  67.      }

  68.     }

  69.    }

  70.    return $returnArray;

  71.   }

  72.  

  73.   function hasChild($cid, $data)

  74.   {

  75.    $hasChild = false;

  76.    foreach ($data as $node)

  77.    {

  78.     if ($node['pid'] == $cid)

  79.     {

  80.      $hasChild = true;

  81.      break;

  82.     }

  83.    }

  84.    return $hasChild;

  85.   }

  86.   header('Content-Type: text/html; charset=utf-8');

  87.   $result = createMenuTree($cates);

  88.   foreach ($result as $row)

  89.   {

  90.    for ($i = 0; $i < $row['level']; $i++)

  91.    {

  92.     echo "t";

  93.    }

  94.    echo $row['cname'] . "n";

  95.   }

  96.   ?>

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/228388.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号