<?php
class
Category{
static
public
function
unlimitedForLevel(
$cate
,
$html
=
'─'
,
$pid
= 0,
$level
= 1){
$arr
=
array
();
foreach
(
$cate
as
$v
){
if
(
$v
[
'pid'
] ==
$pid
){
$v
[
'level'
] =
$level
;
$v
[
'html'
] =
str_repeat
(
$html
,
$level
- 1);
$arr
[] =
$v
;
$arr
=
array_merge
(
$arr
,
$this
->unlimitedForLevel(
$cate
,
$html
,
$v
[
'id'
],
$level
+ 1));
}
}
return
$arr
;
}
static
public
function
unlimitedForlayer(
$cate
,
$name
=
'child'
,
$pid
= 0){
$arr
=
array
();
foreach
(
$cate
as
$v
){
if
(
$v
[
'pid'
] ==
$pid
){
$v
[
$name
] = self::unlimitedForlayer(
$cate
,
$name
,
$v
[
'id'
]);
$arr
[] =
$v
;
}
}
return
$arr
;
}
static
public
function
getParents(
$cate
,
$id
){
$arr
=
array
();
foreach
(
$cate
as
$v
){
if
(
$v
[
'id'
] ==
$id
){
$arr
[] =
$v
;
$arr
=
array_merge
(self::getParents(
$cate
,
$v
[
'pid'
]),
$arr
);
}
}
return
$arr
;
}
static
public
function
getChildrenId(
$cate
,
$pid
){
$arr
=
array
();
foreach
(
$cate
as
$v
){
if
(
$v
[
'pid'
] ==
$pid
){
$arr
[] =
$v
[
'id'
];
$arr
=
array_merge
(
$arr
, self::getChildrenId(
$cate
,
$v
[
'id'
]));
}
}
return
$arr
;
}
static
public
function
getChildren(
$cate
,
$pid
){
$arr
=
array
();
foreach
(
$cate
as
$v
){
if
(
$v
[
'pid'
] ==
$pid
){
$arr
[] =
$v
;
$arr
=
array_merge
(
$arr
, self::getChildren(
$cate
,
$v
[
'id'
]));
}
}
return
$arr
;
}
}
?>