到底什么是无限极分类?

到底什么是无限极分类?

无限极分类简单点说就是一个类可以分成多个子类,然后一个子类又可以分另外多个子类这样无限分下去,就好象windows可以新建一个文件夹,然后在这个文件夹里又可以建一些个文件夹,在文件夹底下还可以建一些文件夹一样。下面举一个类似于淘宝的商品分类数组

<?php

$array = array(
  array('id' => 1, 'pid' => 0, 'name' => '服装'),
  array('id' => 2, 'pid' => 0, 'name' => '食品'),
  array('id' => 3, 'pid' => 1, 'name' => '衬衫'),
  array('id' => 4, 'pid' => 2, 'name' => '休闲零食'),
  array('id' => 5, 'pid' => 2, 'name' => '粮油干货'),
  array('id' => 6, 'pid' => 4, 'name' => '饼干'),
  array('id' => 7, 'pid' => 4, 'name' => '威化饼'),
  array('id' => 8, 'pid' => 3, 'name' => '短袖'),
  array('id' => 9, 'pid' => 1, 'name' => '毛衣'),
);

function getTree($array,$pid=0,$level=0) {

  static $list = [];
  foreach ($array as $key => $value) {
    if ($value['pid'] == $pid) {
      $value['level'] = $level;
      $list[] = $value;
      unset($array[$key]);
      getTree($array,$value['id'],$level+1);
   }
  }
  return $list;
}

$array = getTree($array);

foreach ($array as $value) {
   echo str_repeat('--',$value['level']),$value['name'].'<br/>';
}
点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注