>백엔드 개발 >PHP 튜토리얼 >PHP는 무한 classification_php 예제를 구현합니다.

PHP는 무한 classification_php 예제를 구현합니다.

WBOY
WBOY원래의
2016-05-16 20:27:31878검색

코드 복사 코드는 다음과 같습니다.

$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를 $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를 $v로) {
echo str_repeat(' ',$v['lev']),$v['name'],'
';
}

2. 재귀, 가계도 찾기

탐색경로 탐색 등의 가계도 애플리케이션 > 휴대폰 유형 > CDMA 휴대폰 > 재귀적 애플리케이션

코드 복사 코드는 다음과 같습니다.

함수 familytree($arr,$id) {
$tree = 배열();
foreach($arr를 $v로) {
           if($v['id'] == $id) {// 상위 열을 찾을지 여부 결정
If($v['parent'] > 0) { // parnet>0, 상위 열이 있음을 의미
                    $tree = array_merge($tree,familytree($arr,$v['parent']));
            }
              $tree[] = $v // Shangdi를 예로 들어보겠습니다
}
}
$tree 반환;
}
print_r(familytree($area,8))) // 베이징->하이뎬->상지

2. 가계도를 반복해서 찾습니다

코드 복사 코드는 다음과 같습니다.

// 반복은 재귀보다 효율적이며 많은 코드가 필요하지 않습니다.
// 반복을 사용하여 가계도 추천을 찾습니다
함수 트리($arr,$id) {
$tree = 배열();
동안($id !== 0) {
         foreach($arr as $v) {
If($v['id'] == $id) {
                    $tree[] = $v;
                   $id = $v['parent'];
                 휴식;
~ }
}
$tree 반환;
}
print_r(tree($area,8));

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.