设为首页收藏本站
查看: 107|回复: 0

[PHP] php无限级分类-PHP源码

[复制链接]

论坛元老

Rank: 6Rank: 6

积分
34274
主题
17031
UID
1347
M币
67
贡献
17176

  • 发表于 2018-7-16 20:50:00 | 显示全部楼层 |阅读模式
    class Trees{
    private $_keyId = 'Id';
    private $_keyName = 'Name';
    private $_keyFid = 'Fid';

    function __construct($keyId='',$keyName='',$keyFid='')
    {
    if($keyId==""){$this->_keyId = $this->_keyId;}else{$this->_keyId = $keyId;}
    if($keyName==""){$this->_keyName = $this->_keyName;}else{$this->_keyName = $keyName;}
    if($keyFid==""){$this->_keyFid = $this->_keyFid;}else{$this->_keyFid = $keyFid;}
    }

    public function treeListAll($fid,$step=0,&$fromArray,&$resultArray)
    {
    $step++;
    foreach ($fromArray as $k=>$v){
    if($v[$this->_keyFid] == $fid){
    $newArray[] = $v;
    }
    }
    if(isset($newArray)){
    foreach ($newArray as $k=>$v){
    $this->treeListAll($v[$this->_keyId],$step,$fromArray,$resultArray);
    $v['Step'] = $step;
    $resultArray[] = $v;
    }
    }
    }

    public function getTreeListAll($fid=0,$step=0,&$fromArray,&$resultArray)
    {
    $step++;
    foreach ($fromArray as $k=>$v){
    if($v[$this->_keyFid] == $fid){
    $newArray[] = $v;
    }
    }
    if(isset($newArray)){
    foreach ($newArray as $k=>$v){
    $this->getTreeListAll($v[$this->_keyId],$step,$fromArray,$resultArray);
    $v['Step'] = $step;
    $resultArray[] = $v;
    }
    }
    }

    public function getTreeList($id = 0,&$fromArray)
    {
    $resultArray = array();
    $this->getTreeListAll($id,0,$fromArray,$resultArray);
    $resultArray = array_reverse($resultArray);
    return $resultArray;
    }

    public function getTreeArray($id = 0,&$fromArray)
    {
    $result_one_array = $this->getTreeList($id,$fromArray);
    foreach ($result_one_array as $k=>$v){
    $result_two_array[] = array($v[$this->_keyId]);
    }
    if(isset($result_two_array)){
    for ($i=0;$i
      public function treeListAllTop($fid,$step=0,&$fromArray,&$resultArray)
    {
    $step++;
    foreach ($fromArray as $k=>$v){
    if($v[$this->_keyId] == $fid){
    $newArray[] = $v;
    }
    }
    if(isset($newArray)){
    foreach ($newArray as $k=>$v){
    $this->treeListAllTop($v[$this->_keyFid],$step,$fromArray,$resultArray);
    $v['Step'] = $step;
    $resultArray[] = $v;
    }
    }
    }

    public function getTreeListAllTop($fid=0,$step=0,&$fromArray,&$resultArray)
    {
    $step++;
    foreach ($fromArray as $k=>$v){
    if($v[$this->_keyId] == $fid){
    $newArray[] = $v;
    }
    }
    if(isset($newArray)){
    foreach ($newArray as $k=>$v){
    $this->getTreeListAllTop($v[$this->_keyFid],$step,$fromArray,$resultArray);
    $v['Step'] = $step;
    $resultArray[] = $v;
    }
    }
    }

    public function getTreeListTop($id = 0,&$fromArray)
    {
    $resultArray = array();
    $this->getTreeListAllTop($id,0,$fromArray,$resultArray);
    $resultArray = array_reverse($resultArray);
    return $resultArray;
    }

    public function getTreeArrayTop($id = 0,&$fromArray)
    {
    $result_one_array = $this->getTreeListTop($id,$fromArray);
    foreach ($result_one_array as $k=>$v){
    $result_two_array[] = array($v[$this->_keyFid]);
    }
    if(isset($result_two_array)){
    for ($i=0;$i'.$firstHint.'';
    }else{
    $str = '';
    }
    foreach ($sourcArray as $value){
    $level="";
    for($i=1;$i_keyId],$selectId)){
    $selectStr = "selected";
    }else{

    }
    $str.='_keyId].'" '.$selectStr.'>|'.$level.$value[$this->_keyName]."";
    $level="";
    }
    }else{
    $flagStep =-1;
    $str = ''.$firstHint.'';
    foreach ($sourcArray as $value){
    $level="";
    for($i=1;$i_keyId]){
    $flagStep = $value['Step'];
    }else{
    if($flagStep != -1 && $value['Step']>$flagStep){

    }else{
    if($flagStep != -1 && $value['Step']_keyId] == $selectId){
    $selectStr = "selected";
    }
    $str.='_keyId].'" '.$selectStr.'>|'.$level.$value[$this->_keyName]."";
    }
    }

    $level="";
    }
    }
    return $str;
    }
    }
    [/td] [/tr] [/table]
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    在我站开通SVIP可同时获得17个站点VIP资源 立即登录 立即注册
    快速回复 返回顶部 返回列表