您好,欢迎访问一九零五行业门户网

php无限级分类(带层深)算法_PHP教程

一个利用数组来实现无限级分类php类程序,有需要的朋友可参考,这里就不多说什么了直接复制上代码。
 代码如下 复制代码
1,
  'cname' => '新闻',
  'pid'   => 0
 ),
 array(
  'cid'   => 2,
  'cname' => '通知',
  'pid'   => 0
 ),
 array(
  'cid'   => 3,
  'cname' => '国内新闻',
  'pid'   => 1
 ),
 array(
  'cid'   => 4,
  'cname' => '国际新闻',
  'pid'   => 1
 ),
 array(
  'cid'   => 5,
  'cname' => '北京新闻',
  'pid'   => 3
 ),
 array(
  'cid'   => 6,
  'cname' => '上海新闻',
  'pid'   => 3
 ),
 array(
  'cid'   => 7,
  'cname' => '紧急通知',
  'pid'   => 2
 ),
 array(
  'cid'   => 8,
  'cname' => '一般通知',
  'pid'   => 2
 ),
);
/**
 * 生成菜单
 *
 * @param array $data 原始数据
 * @param integer $pid 当前分类的父id
 * @return array 处理后数据
 */
function createmenutree($data = array(), $pid = 0)
{
 if (empty($data))
 {
  return array();
 }
 static $level = 0;
 $returnarray = array();
 foreach ($data as $node)
 {
  if ($node['pid'] == $pid)
  {
   $returnarray[] = array(
    'cid'   => $node['cid'],
    'cname' => $node['cname'],
    'level' => $level
   );
   if (haschild($node['cid'], $data))
   {
    $level++;
    $returnarray = array_merge($returnarray, createmenutree($data, $node['cid']));
    $level--;
   }
  }
 }
 return $returnarray;
}
/**
 * 检查是否有子分类
 *
 * @param integer $cid 当前分类的id
 * @param array $data 原始数据
 * @return boolean 是否有子分类
 */
function haschild($cid, $data)
{
 $haschild = false;
 foreach ($data as $node)
 {
  if ($node['pid'] == $cid)
  {
   $haschild = true;
   break;
  }
 }
 return $haschild;
}
header('content-type: text/html; charset=utf-8');
$result = createmenutree($cates);
foreach ($result as $row)
{
 for ($i = 0; $i  {
  echo t;
 }
 echo $row['cname'] . n;
}
?>
http://www.bkjia.com/phpjc/444626.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/444626.htmltecharticle一个利用数组来实现无限级分类php类程序,有需要的朋友可参考,这里就不多说什么了直接复制上代码。 代码如下 复制代码 ?php $cates = ar...
其它类似信息

推荐信息