作业帮 > PHP > 教育资讯

无限分级(PHP版)[1]

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/14 19:32:24 PHP
无限分级(PHP版)[1]
无限分级(PHP版)[1]PHP
【BK网络学院 - PHP】
/**
* 把二维表分解成多级数组
* (可用于无线分级菜单,无限级留言)
* @author Lonely (从以前BLOG转过来的)
*/
class unlimitClass {
private static $proarr=array();
private static $valuefield='value';
private static $parentidfield='parentid';
private static $subidfield='subid';
/**
* 设置父字段
* @param string $parentid
*/
public static function setParentIdField($parentid){
self::$parentidfield=$parentid;
}
/**
* 设置子字段
* @param string $subid
*/
public static function setSubIdField($subid){
self::$subidfield=$subid;
}
/**
* 设置值字段
* @param string $value
*/
public static function setValueField($value){
self::$valuefield=$value;
}
/**
* 处理分级数组并返回
* @param array $array
*/
public static function toSub(array $array){
if(is_array($array)){
foreach($array as $row){
self::$proarr [$row [self::$subidfield]] = $row;
self::$proarr [$row [self::$parentidfield]] ['sub'] [$row [self::$subidfield]] = $row;
}
return self::search_sub(self::$proarr,0);
}else
return array();
}
/**
* 关键算法函数
* @param array $array
* @param unknown_type $key
*/
private static function search_sub(array $array,$key){
$return = array ();
$subs = isset ( $array [$key] ['sub'] ) ? $array [$key] ['sub'] : array ();
foreach ( $subs as $k => $v ) {
$return [$k] = array ('sub' => self::search_sub ( $array, $k ), 'value' => $v [self::$valuefield] );
}
return $return;
}
}
$temp=arrayPHP