machine_马设计的无限分类

上一篇 / 下一篇  2007-11-09 14:18:37 / 个人分类:php

<?php
Q9g]3\@49907
class m_layer {PHPChina 开源社区门户"O/_O1S~0Sz.?
    
/**PHPChina 开源社区门户Y SM Pq l
     * 无限分类
/A!}7S1m1j mDP49907     *
\p)PtRq!ym49907     * @param object $mdbPHPChina 开源社区门户-G-S gtnGG i.h b
     * @param string $tablePHPChina 开源社区门户/J&Z6Y1Fn%@z"]@;K
     * @param string $label_columPHPChina 开源社区门户(_vl(G J;Z-oG-`
     * @return arrayPHPChina 开源社区门户0x}5F3n1z
     */PHPChina 开源社区门户l6~b;?~7N
    
function get_layer($layer$label_colum 'label') {
@ |.~[f6`gm {49907        
$new_layer = array();PHPChina 开源社区门户9brSA8i

Ic2RC~O*P49907        if (!
is_array($layer) || !is_array(current($layer)) || !array_key_exists($label_columcurrent($layer))) {
4Jd V!`A5j0r Nnf0n49907            return array();PHPChina 开源社区门户R:Zrx? ]
        }PHPChina 开源社区门户)VE&w dK*eX|
        foreach (
$layer as $row) {
7m Oe[!\7sz%V!C49907            
$row_str '';
%O:X&UlY-T} FDBo49907            foreach (
$row as $key => $value) {PHPChina 开源社区门户5I U!SNQUv
                
$row_str .= ",'$key' => '$value'";
&h |8HYW4t!l X s}F5Q.J49907            }PHPChina 开源社区门户Z\s9Ja:P4M
            
$row_str "array(" substr($row_str1) . ')';PHPChina 开源社区门户uo B/R1G*n
PHPChina 开源社区门户@w.xO+r\z
            
$label_arr explode('-'$row[$label_colum]);PHPChina 开源社区门户 cWO/Ii\F
            
$layer_str '$new_layer';PHPChina 开源社区门户c9t"u!CN UG
            foreach (
$label_arr as $label) {PHPChina 开源社区门户J {5f!zjGl
                if (
intval($label)) {
%Xfq,WPI)o49907                    
$layer_str .= "['child']['$label']";
X\9n/g+_|F8m49907                }PHPChina 开源社区门户K:|"H8L^r'Ua
            }
0F&BBy mG49907            eval(
"$layer_str=$row_str;");
[w)p'y t(J49907        }
FE8f|!E i49907        return 
$new_layer['child'];PHPChina 开源社区门户'cmg`:s4k~ aj
    }
-X6e'rY'hOpk'E49907

a2sV T4t!s\2f49907?>

:i$l-gb(gE49907使用例子PHPChina 开源社区门户7M;c$u&[.`
<?php
;P ev-e Y^0]@7j49907
Gu1|+c/z\49907
// 无限分类的例子
7KM j xcQ]/e49907// 实际运用中,以下数据一般都是直接从数据库中提取出来的
UX |bA$V49907
.UW)n` a O3?Eg49907
$label[] = array('name' => '游戏世家''layer' => '01');
!v`p'G3B'K_/D J]49907
$label[] = array('name' => '网络游戏''layer' => '01-01');PHPChina 开源社区门户MJM4XL'um o&KD2fo
$label[] = array('name' => '卡丁车''layer' => '01-01-01');PHPChina 开源社区门户?ZW v!_t$}W9P[
$label[] = array('name' => '泡泡堂''layer' => '01-01-02');PHPChina 开源社区门户f+L Mv qwJ\
$label[] = array('name' => '单机游戏''layer' => '01-02');PHPChina 开源社区门户,e/rRCe*PA
$label[] = array('name' => '生化危机''layer' => '01-02-01');PHPChina 开源社区门户"oSn!m6xe's
$label[] = array('name' => '盟军敢死队''layer' => '01-02-02');PHPChina 开源社区门户%z.ZG9vw)B6I
$label[] = array('name' => '超级玛丽''layer' => '01-02-02');PHPChina 开源社区门户T)y;ZcJ6P"w
$label[] = array('name' => '娱乐休闲''layer' => '02');PHPChina 开源社区门户l3yIV"s
$label[] = array('name' => '音乐之家''layer' => '02-01');
dMLb*e.f0Z49907
$label[] = array('name' => '周杰伦''layer' => '02-01-01');PHPChina 开源社区门户_3F#Q"iz%ay$j h"zd
$label[] = array('name' => '刘若英''layer' => '02-01-02');
~KHl` Q]49907
$label[] = array('name' => '书香门第''layer' => '02-02');
7N'r O ^+K Dc!`*]49907
$label[] = array('name' => '小说''layer' => '02-02-01');PHPChina 开源社区门户W`2C um e
$label[] = array('name' => '长篇小说''layer' => '02-02-01-01');PHPChina 开源社区门户MQ\}9q;`rG
$label[] = array('name' => '短篇小说''layer' => '02-02-01-02');PHPChina 开源社区门户+s K[$M V|[
$label[] = array('name' => '杂志''layer' => '02-02-02');PHPChina 开源社区门户V7C["l5P fP4i+P
$layeray = m_layer::get_layer($label, 'layer');PHPChina 开源社区门户)F,[ _:C@
print_r($layeray);
[.[mwS`;}49907
T2FQ NX49907
/**输出
e?$m!M7L Mi(K5K49907ArrayPHPChina 开源社区门户V^:d4I'hk-a T X
(
2L jg8esj'fO49907    [01] => Array
-aYLA"L4R49907        (
$KY;S7O\{49907            [name] => 游戏世家PHPChina 开源社区门户3}0}rwz8\w9di9}
            [layer] => 01PHPChina 开源社区门户&N*}Cp;_7[FQ
            [child] => ArrayPHPChina 开源社区门户;Sg#{8j\c w|)my
                (PHPChina 开源社区门户%fE XU[0s aB)I
                    [01] => ArrayPHPChina 开源社区门户*B ],A'[M?[i
                        (
8FjR&~N(i]"PD49907                            [name] => 网络游戏
3|2UO(xp/F)bmn49907                            [layer] => 01-01
cLSkT%`D#W49907                            [child] => Array
z y#|4GBe!v49907                                (
b@8O6\3r)@?49907                                    [01] => ArrayPHPChina 开源社区门户G#lD$y(|-D%j WO%Q8L
                                        (
;PH]b,^5nvq49907                                            [name] => 卡丁车
;ALT-XyS49907                                            [layer] => 01-01-01PHPChina 开源社区门户0p5Q&n.^F8Q9MRl
                                        )PHPChina 开源社区门户6A m~U{X
PHPChina 开源社区门户Q%|9OO@+lzt
                                    [02] => Array
#},w+}qw#Z49907                                        (
3L @p6u.FD)F49907                                            [name] => 泡泡堂PHPChina 开源社区门户+y:R*~qASP
                                            [layer] => 01-01-02PHPChina 开源社区门户Hc_D6w
                                        )PHPChina 开源社区门户8|XN%`9A'| c3x&kv2q
PHPChina 开源社区门户5I4v!h9@X2W9v~E0?
                                )
3q1PnFh\49907
GM!rB/Dn f wZD0i49907                        )
lL WsO [49907PHPChina 开源社区门户#i4J3E9S)rp,w_&\
                    [02] => Array
pd}B7^| @#N,T;z49907                        (PHPChina 开源社区门户$KBax ~H
                            [name] => 单机游戏
#R nQU5GZ{6B"l49907                            [layer] => 01-02
^9j:v:xE3_,U.^k49907                            [child] => Array
&}-i&K)n:E49907                                (
"r[,s8W!}*a[9@ k;X1n49907                                    [01] => ArrayPHPChina 开源社区门户6rRI'L9Yu
                                        (PHPChina 开源社区门户`;{!D4^8v(r#y
                                            [name] => 生化危机
RT~ H*\?9S49907                                            [layer] => 01-02-01PHPChina 开源社区门户i*I,L2L}`
                                        )PHPChina 开源社区门户 p(S{OUt?mR
PHPChina 开源社区门户 qhj;Q0F
                                    [02] => Array
Z`u8U1K s@S"lO T49907                                        (PHPChina 开源社区门户vH/e3TY$h+h
                                            [name] => 超级玛丽PHPChina 开源社区门户 xU/f B?c5^
                                            [layer] => 01-02-02
WrW"N(lU QFxF49907                                        )
7UP&z~ A3r$sE.H49907PHPChina 开源社区门户*JR t7bq-tV{
                                )PHPChina 开源社区门户,e V_5REzl5l

xBq0q{ W6fV f,Y49907                        )
Ee Z+d~49907
i8?grKvL49907                )PHPChina 开源社区门户N*G.}3`8Ja
PHPChina 开源社区门户n#t~v.a4F [T J0a
        )PHPChina 开源社区门户toJ o:h.N4Re0V
PHPChina 开源社区门户xA|/\*] z
    [02] => ArrayPHPChina 开源社区门户f9]c"U/WR g7I
        (PHPChina 开源社区门户"x Z2aS k)p
            [name] => 娱乐休闲
UT\6Vkh49907            [layer] => 02PHPChina 开源社区门户1\nIqz:p U5`B
            [child] => ArrayPHPChina 开源社区门户p{|7n+h/H Y$a%Jv
                (PHPChina 开源社区门户`b'Y#EEL a Z
                    [01] => ArrayPHPChina 开源社区门户9AQ Xm?#b.U
                        (PHPChina 开源社区门户 J^ Y X)J \
                            [name] => 音乐之家
a'c+R Cq$l~,b{.|49907                            [layer] => 02-01PHPChina 开源社区门户 O*N$i|bw7WV_
                            [child] => ArrayPHPChina 开源社区门户v f'? w J(}d h
                                (PHPChina 开源社区门户 M8cX*c@M
                                    [01] => Array
USHd3J{49907                                        (
/?c?*TcM7v:r!h49907                                            [name] => 周杰伦PHPChina 开源社区门户0|0y4q'h,a B V)m
                                            [layer] => 02-01-01
Yj3A,|:~$@49907                                        )
_1@)U9PV#^#p49907PHPChina 开源社区门户4J+bfnD;x;j
                                    [02] => Array
*J;J2K,c`yf/I1RX49907                                        (
:fMhKJkL49907                                            [name] => 刘若英PHPChina 开源社区门户T*H.Jj,MKq
                                            [layer] => 02-01-02PHPChina 开源社区门户#dP,Fc9H;jk
                                        )
kk^0QA7I p4C49907PHPChina 开源社区门户~ga*sA6M
                                )
v:Q2q$Ar5_(V49907
o jd Z0v&T4I49907                        )PHPChina 开源社区门户 N'M3X1v `xG'F
PHPChina 开源社区门户Et WKe'x"O&pc I
                    [02] => ArrayPHPChina 开源社区门户,o-ib0h%K&L1C.dC e4g
                        (PHPChina 开源社区门户5?#Ch&TlA6t
                            [name] => 书香门第
4?q(T_{49907                            [layer] => 02-02PHPChina 开源社区门户~W3_)O,l-]1k[
                            [child] => Array
ymE\u]49907                                (PHPChina 开源社区门户FuUbSm
                                    [01] => ArrayPHPChina 开源社区门户OiA,Khr@
                                        (PHPChina 开源社区门户 e.\p*DD V\7|.c
                                            [name] => 小说
!jqa!rtV/n5Iok49907                                            [layer] => 02-02-01PHPChina 开源社区门户6@ {'o*rav8y
                                            [child] => ArrayPHPChina 开源社区门户z2d-{F b
                                                (PHPChina 开源社区门户Gir'vm{4T
                                                    [01] => Array
d|T'F8b$WM9C49907                                                        (PHPChina 开源社区门户 ifUL*?!^L
                                                            [name] => 长篇小说
,U9~kn] i49907                                                            [layer] => 02-02-01-01PHPChina 开源社区门户nWx$b7}4t
                                                        )
`I t }(v)I49907PHPChina 开源社区门户t bc!^D[!fWj
                                                    [02] => ArrayPHPChina 开源社区门户:x0Bi3p7K.p_#J,`"s
                                                        (PHPChina 开源社区门户$G;o"}]j:U)J
                                                            [name] => 短篇小说PHPChina 开源社区门户,zx%HLAX&f*^g
                                                            [layer] => 02-02-01-02
D Z/k6A;U8s4tH&]QB49907                                                        )
B E [D1v49907
nzk$Kl49907                                                )
!P$f@M6m;i9}4oV49907PHPChina 开源社区门户$^\0a}8]vY
                                        )PHPChina 开源社区门户1M7}O\9C
PHPChina 开源社区门户K TWa8Dl~
                                    [02] => Array
q'f [,|9Z o3G49907                                        (
A i5opL8p-V49907                                            [name] => 杂志
qo$[UQ'~49907                                            [layer] => 02-02-02
EcYI+d}49907                                        )PHPChina 开源社区门户(t?/Z1\b+cHc0@
PHPChina 开源社区门户 U;p'|'xw)kQ~lD
                                )PHPChina 开源社区门户#M4_,lGvfH"m$Q
PHPChina 开源社区门户.Hq+PQ^%ss
                        )
$_6o@R9N bh k49907
grYp uU49907                )PHPChina 开源社区门户0Hi)H8\:vMS"l

JAIgL$Y49907        )
["ey|/q4u5Qw1j49907
+_t*|!h3CBSn9RY&H49907)
!bRl%L dE49907
?>
PHPChina 开源社区门户&x@7S2g"M%g E

TAG: PHP php

引用 删除 Guest   /   2008-05-25 22:33:12
www.xingchenbian33.cn
www.meinv880.cn
引用 删除 radision   /   2007-11-14 12:38:14
3
好方法!学习!
spjhf 引用 删除 spjhf   /   2007-11-09 14:32:27
5
收藏
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar