您好,欢迎访问一九零五行业门户网

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

复制代码 代码如下:
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        {
            $num   = $i;
            $order = ;
            $con   = @strcmp($a['$args[$num]'],$b['$args[$num]']);
            while(++$i             {
                if($args[$i] === sort_numeric)
                {
                    $con = ($a['$args[$num]']-$b['$args[$num]']);
                }
                else if($args[$i] === sort_desc)
                {
                    $order = -1*;
                }
                else if(is_string($args[$i]))
                {
                    $i--;
                    break;
                }
            }
            $cmd .= if($num = $con)return $order$num;else ;
            if($order != '')
            {
                $i++;
            }
        }
        @usort($array,@create_function('$a,$b',$cmd return 0;));
    }
public function wirte($sortname,$sortlevel)
    {
        $array  =  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])     {
        echo '';
        echo '';
        exit;
    }
    if(file_exists(data.php))
    {
        $cat->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         {
            echo -;
        }
        echo $val['sortname'].rn;
    }
    echo rn;
    echo '  '.rn;
    echo '';
    echo ;
    exit;
}
foreach($cat->orders() as $value)
{
    $level = strlen(substr($value['sortlevel'],0,-3));
    for($i = 0; $i     {
        echo -;
    }
    echo $value[sortname];
    echo 
;
}
?>
http://www.bkjia.com/phpjc/317449.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/317449.htmltecharticle复制代码 代码如下: ?php classcat { public$data; publicfunction__construct() { @includedata.php; $this-data=$class; } publicfunctioncreatesortlevel($fatherlevel) { if(empt...
其它类似信息

推荐信息