php mysql无限分类排序_PHP 无限级分类、排序
lyk625358
header('content-type:text/html;charset=utf-8');
echo "
";//-無限級(jí)排序,自己優(yōu)化改良的,清除上次調(diào)用此函數(shù)后留下的靜態(tài)變量的值
$arr = array(
array('id'=>2,'cname'=>'分類2','parent_id'=>1),
array('id'=>9,'cname'=>'分類9','parent_id'=>8),
array('id'=>1,'cname'=>'分類1','parent_id'=>0),
array('id'=>7,'cname'=>'分類7','parent_id'=>0),
array('id'=>3,'cname'=>'分類3','parent_id'=>2),
array('id'=>4,'cname'=>'分類4','parent_id'=>0),
array('id'=>6,'cname'=>'分類6','parent_id'=>5),
array('id'=>8,'cname'=>'分類8','parent_id'=>7),
array('id'=>5,'cname'=>'分類5','parent_id'=>4)
);
// 根據(jù)子類id 找所有父類
function _getParent($data, $son_id, $level=0, $isClear=true){
//聲明一個(gè)靜態(tài)數(shù)組存儲(chǔ)結(jié)果
static $res = array();
//剛進(jìn)入函數(shù)要清除上次調(diào)用此函數(shù)后留下的靜態(tài)變量的值,進(jìn)入深一層循環(huán)時(shí)則不要清除
if($isClear==true) $res =array();
foreach ($data as $v) {
if($v['id'] == $son_id){
$v['level'] = $level;
$res[] = $v;
_getParent($data, $v['parent_id'], $level-1, $isClear=false);
}
}
return $res;
}
print_r(_getParent($arr, 6));
echo "
";
// 根據(jù)父類id找所有子類
function _getSon($data, $p_id=0, $level=0, $isClear=true){
//聲明一個(gè)靜態(tài)數(shù)組存儲(chǔ)結(jié)果
static $res = array();
//剛進(jìn)入函數(shù)要清除上次調(diào)用此函數(shù)后留下的靜態(tài)變量的值,進(jìn)入深一層循環(huán)時(shí)則不要清除
if($isClear==true) $res =array();
foreach ($data as $v) {
if($v['parent_id'] == $p_id){
$v['level'] = $level;
$res[] = $v;
_getSon($data, $v['id'], $level+1, $isClear=false);
}
}
return $res;
}
print_r(_getSon($arr, 0));
echo "
";
總結(jié)
以上是生活随笔為你收集整理的php mysql无限分类排序_PHP 无限级分类、排序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北京环球影城门票多少钱一张
- 下一篇: DNF副职业选什么好?