Skip to content

Commit 3d1a5df

Browse files
committed
ad
0 parents  commit 3d1a5df

11 files changed

+641
-0
lines changed

composer.json

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"name": "niklaslu/un-limit-tree",
3+
"description": "php无限级分类",
4+
"keyword" : ["php" , "tree"],
5+
"minimum-stability": "stable",
6+
"license": "MIT",
7+
"authors": [
8+
{
9+
"name": "niklas lu",
10+
"email": "[email protected]",
11+
"role": "Developer"
12+
}
13+
],
14+
"autoload" : {
15+
"psr-4" : {
16+
"niklaslu\\" : "src"
17+
}
18+
}
19+
}

composer.phar

1.61 MB
Binary file not shown.

src/UnLimitTree.php

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
<?php
2+
3+
/**
4+
* Created by PhpStorm.
5+
* Author: Niklas Lu
6+
7+
* Date: 2016/6/23
8+
* Time: 10:30
9+
*/
10+
namespace niklaslu;
11+
class UnLimitTree
12+
{
13+
//组合一维数组
14+
Static Public function unlimitedForLevel ($cate, $html = '--', $pid = 0, $level = 0) {
15+
$arr = array();
16+
foreach ($cate as $k => $v) {
17+
if ($v['pid'] == $pid) {
18+
$v['level'] = $level + 1;
19+
$v['html'] = str_repeat($html, $level);
20+
$arr[] = $v;
21+
$arr = array_merge($arr, self::unlimitedForLevel($cate, $html, $v['id'], $level + 1));
22+
}
23+
}
24+
return $arr;
25+
}
26+
//组合多维数组
27+
Static Public function unlimitedForLayer ($cate, $name = 'child', $pid = 0) {
28+
$arr = array();
29+
foreach ($cate as $v) {
30+
if ($v['pid'] == $pid) {
31+
$v[$name] = self::unlimitedForLayer($cate, $name, $v['id']);
32+
$arr[] = $v;
33+
}
34+
}
35+
return $arr;
36+
}
37+
//传递一个子分类ID返回所有的父级分类
38+
Static Public function getParents ($cate, $id) {
39+
$arr = array();
40+
foreach ($cate as $v) {
41+
if ($v['id'] == $id) {
42+
$arr[] = $v;
43+
$arr = array_merge(self::getParents($cate, $v['pid']), $arr);
44+
}
45+
}
46+
return $arr;
47+
}
48+
//传递一个父级分类ID返回所有子分类ID
49+
Static Public function getChildsId ($cate, $pid) {
50+
$arr = array();
51+
foreach ($cate as $v) {
52+
if ($v['pid'] == $pid) {
53+
$arr[] = $v['id'];
54+
$arr = array_merge($arr, self::getChildsId($cate, $v['id']));
55+
}
56+
}
57+
return $arr;
58+
}
59+
//传递一个父级分类ID返回所有子分类
60+
Static Public function getChilds ($cate, $pid) {
61+
$arr = array();
62+
foreach ($cate as $v) {
63+
if ($v['pid'] == $pid) {
64+
$arr[] = $v;
65+
$arr = array_merge($arr, self::getChilds($cate, $v['id']));
66+
}
67+
}
68+
return $arr;
69+
}
70+
}

vendor/autoload.php

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
// autoload.php @generated by Composer
4+
5+
require_once __DIR__ . '/composer' . '/autoload_real.php';
6+
7+
return ComposerAutoloaderInit4267cd0da015edc1ae786eff615a2e5f::getLoader();

0 commit comments

Comments
 (0)