ホームページ >バックエンド開発 >PHPチュートリアル >PHP は無制限の分類を実装し、PHP はレベル分類を実装します_PHP チュートリアル

PHP は無制限の分類を実装し、PHP はレベル分類を実装します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:10:49899ブラウズ

phpは無限分類を実現し、phpはレベル分類を実現します

コードをコピーします コードは次のとおりです:

$area = 配列(
array('id'=>1,'name'=>'安徽','parent'=>0),
array('id'=>2,'name'=>'Haidian','parent'=>7),
array('id'=>3,'name'=>'遂西県','parent'=>5),
array('id'=>4,'name'=>'Changping','parent'=>7),
array('id'=>5,'name'=>'淮北','parent'=>1),
array('id'=>6,'name'=>'朝陽','parent'=>7),
array('id'=>7,'name'=>'北京','parent'=>0),
array('id'=>8,'name'=>'上地','parent'=>2)
);

1. 再帰、子孫ツリーを見つける

コードをコピーします コードは次のとおりです:

関数サブツリー($arr,$id=0,$lev=1) {
$subs = array() // 子孫の配列
; foreach($arr as $v) {
If($v['parent'] == $id) {
$v['lev'] = $lev;
$subs[] = $v; // たとえば、array('id'=>1,'name'=>'Anhui','parent'=>0),
を見つけます。 $subs = array_merge($subs,subtree($arr,$v['id'],$lev+1));
}
}
$subs を返します;
}
$tree = サブツリー($area,0,1);
foreach($tree as $v) {
echo str_repeat(' ',$v['lev']),$v['name'],'
';
}

2. 再帰、家系図を見つける

パンくずナビゲーションなどの家系図アプリケーション > 携帯電話の種類 > CDMA 携帯電話 > 再帰的アプリケーション

コードをコピーします コードは次のとおりです:

関数ファミリーツリー($arr,$id) {
$tree = array();
foreach($arr as $v) {
if($v['id'] == $id) {//親列を見つけるかどうかを決定します
If($v['parent'] > 0) { // parnet>0、親列があることを意味します
$tree = array_merge($tree,familytree($arr,$v['parent']));
}
$tree[] = $v // 上地を見つけることを例に挙げます
; }
}
$tree を返します;
}
print_r(familytree($area,8)); // 北京->海淀->上帝

2. 家系図を繰り返して見つけます

コードをコピーします コードは次のとおりです:

// 反復は再帰よりも効率的であり、多くのコードを必要としません。
// 家系図を見つけるには反復が推奨されます
関数ツリー($arr,$id) {
$tree = array();
While($id !== 0) {
foreach($arr as $v) {
if($v['id'] == $id) {
$tree[] = $v;
$id = $v['parent'];
休憩;
                                                                            }
}
$tree を返します;
}
print_r(tree($area,8));

http://www.bkjia.com/PHPjc/932494.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/932494.html技術記事 PHP は無制限の分類を実装します。PHP は次のようにコードをコピーします。 $area = array( array('id'=1,'name'='Anhui','parent'=0), array('id'=) 2 、'name'='ハイディアン'、'parent'=7)、array('i...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。