《PHP實(shí)戰(zhàn):PHP 無限級分類》要點(diǎn):
本文介紹了PHP實(shí)戰(zhàn):PHP 無限級分類,希望對您有用。如果有疑問,可以聯(lián)系我們。
PHP編程有一段時(shí)間沒用過無限極分類,不巧今天又用到,所以特地去翻箱回顧以前.為了避免以后找起來麻煩,特地貼在這里.
PHP編程
<?php
/**
* 無限級分類 類
*/
class Category{
/**
* 返回一維數(shù)組
* @param [type] $cate 要遞歸的數(shù)組
* @param string $html 子級分類前要顯示的縮進(jìn)符號.默認(rèn) '─'
* @param integer $pid 父級分類ID.默認(rèn)為 0,表示頂級分類
* @param integer $level level級,配合 $html 顯示足夠的縮進(jìn).默認(rèn)為 1,表示頂級分類
* @return [type] [description]
*/
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;
}
/**
* 返回多維數(shù)組
* @param [type] $cate 要遞歸的數(shù)組
* @param string $name 子級分類在父分類數(shù)組中的 key
* @param integer $pid 父級分類ID.默認(rèn)為0,表示頂級分類
* @return [type] [description]
*/
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;
}
/**
* 傳遞子分類ID返回所有父級分類
* @param [type] $cate 要遞歸的數(shù)組
* @param [type] $id 子分類ID
* @return [type] [description]
*/
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;
}
/**
* 傳遞父級分類ID返回所有子分類ID
* @param [type] $cate 要遞歸的數(shù)組
* @param [type] $pid 父級分類ID
* @return [type] [description]
*/
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;
}
/**
* 傳遞父級分類ID返回所有子級分類
* @param [type] $cate 要遞歸的數(shù)組
* @param [type] $pid 父級分類ID
* @return [type] [description]
*/
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;
}
}
?>
PHP編程以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持維易PHP!
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/867.html