找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1388|回复: 0
打印 上一主题 下一主题

使用PHP数组实现无限分类,不使用数据库,不使用递归.

[复制链接]

2500

主题

2513

帖子

7520

积分

论坛元老

Rank: 8Rank: 8

积分
7520
跳转到指定楼层
楼主
发表于 2018-2-14 09:40:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            [U]复制代码[/U] 代码如下:
data = $class;
    }
    public function CreateSortLevel($fatherlevel)
    {
        if(empty($fatherlevel))
        {
            if(is_array($this->data))
            {
                $fast_level = array();
                foreach($this->data as $value)
                {
                    if(strlen($value["sortlevel"]) == 3)
                    {
                        $fast_level[] = $value["sortlevel"];
                    }
                }
                $max_fast_level = max($fast_level);
                unset($fast_level);
                $sub   = ceil($max_fast_level) + 1;
                switch(strlen($sub))
                {
                    case 1:
                        return "00{$sub}";
                        break;
                    case 2:
                        return "0{$sub}";
                        break;
                    case 3:
                        return $sub;
                        break;
                }
            }
            else
            {
                return "001";
            }
        }
        foreach($this->data as $val)
        {
            if(eregi("^".$fatherlevel.".{3}$",$val["sortlevel"]))
            {
                $level[] = $val["sortlevel"];
            }
        }
        if(is_array($level))
        {
            $max_two_level = max($level);
            $sub   = ceil(substr($max_two_level,-3)) + 1;
            switch(strlen($sub))
            {
                case 1:
                    return substr($max_two_level,0,strlen($max_two_level)-1).$sub;
                    break;
                case 2:
                    return substr($max_two_level,0,strlen($max_two_level)-2).$sub;
                    break;
                case 3:
                    return substr($max_two_level,0,strlen($max_two_level)-3).$sub;
                    break;
            }
        }
        else
        {
            return $fatherlevel."001";
        }
    }
    public function orders()
    {
        $op = $this->data;
        $this->array_usort($op,"sortlevel",SORT_ASC);
        return $op;
    }
    public function add_cat($sortname,$sortlevel)
    {
        $data = time();
        $arr = array
        (
            "{$data}" => array
            (
              "sortname"  => $sortname,
              "sortlevel" => $this->CreateSortLevel($sortlevel)
            )
         );
        $rs = $this->data + $arr;
        $this->add_wirte($rs);
    }
    private function array_usort(&$array)
    {
        $args = func_get_args();
        for($i=1,$cmd='',$size=count($args);$i array'."rn";
        $array .= '      ('."rn";
        $array .= '           "sortname" => "'.$sortname.'"'.",rn";
        $array .= '           "sortlevel" => "'.$this->CreateSortLevel($sortlevel).'"'."rn";
        $array .= '      )'."rn";
        $array .= ")rn?>";
        file_put_contents("data.php",$array);
    }
    public function add_wirte($rs)
    {
        $array  = "$value)
        {
            $array .= "rn";
            $array .= '  "'.$key.'" => array'."rn";
            $array .= '      ('."rn";
            $array .= '           "sortname" => "'.$value["sortname"].'"'.",rn";
            $array .= '           "sortlevel" => "'.$value["sortlevel"].'"'."rn";
            $array .= '      ),';
        }
        $array  = substr($array,0,-1);
        $array .= "rn)rn?>";
        file_put_contents("data.php",$array);
    }
}
$cat = new cat();
if($_GET["action"] == "add")
{
    if(strlen($_POST["sortname"]) add_cat($_POST["sortname"],$_POST["sortlevel"]);
        echo '';
        echo '';
        exit;
    }
    else
    {
        $cat->wirte($_POST["sortname"],$_POST["sortlevel"]);
        echo '';
        echo '';
        exit;
        exit;
    }
}
if($_GET["action"] == "tpl")
{
    echo '';"rn";
    echo ''."rn";
    echo '根分类'."rn";
    foreach($cat->orders() as $val)
    {
        echo '';
        $clevel = strlen(substr($val['sortlevel'],0,-3));
        for($i = 0; $i rn";
    }
    echo "rn";
    echo '  '."rn";
    echo '';
    echo "";
    exit;
}
foreach($cat->orders() as $value)
{
    $level = strlen(substr($value['sortlevel'],0,-3));
    for($i = 0; $i  
            
            
您可能感兴趣的文章:
  • php 无极分类(递归)实现代码
  • php递归实现无限分类生成下拉列表的函数
  • php实现无限级分类实现代码(递归方法)
  • PHP 无限分类三种方式 非函数的递归调用!
  • php无限极分类递归排序实现方法
  • PHP实现无限级分类(不使用递归)
  • thinkphp实现无限分类(使用递归)
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

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

    本版积分规则

    用户反馈
    客户端