이 기사의 예에서는 재귀 구현을 기반으로 하는 PHP 트리 메뉴 코드를 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 구현 방법은 다음과 같습니다.
전자상거래 웹사이트를 개발할 때 재귀적으로 구현한 PHP 트리 메뉴 기능을 이용하여 트리 메뉴를 표시하는 기능을 만들었습니다. 구체적인 코드는 다음과 같습니다.
공용 함수 procCategory($sid,$pid){
$return = 배열();
$키 = 0;
static $arr = array(); //분류 수준 참조 배열
$sql = "shop_goods_catalog에서 cid,pcid,name을 선택하세요. 여기서 sid='{$sid}'이고 pcid = '{$pid}'";
$result = $this->__db->query($sql);
while($row=$this->__db->fetchArray($result)){
$nbsp = '';
if($row['pcid']==0){
$arr = 배열();
}
$arr[] = $row['pcid'];
//최상위 범주는 트리 구조 식별자를 추가하지 않습니다.
if($row['pcid']>0){
//분류 수준에 따른 트리 구조 식별 추가
$key = array_search($row['pcid'],$arr);
for($i=0;$i<$key;$i ){
$nbsp .= ' ';
}
//분류 수준 참조 배열 재구성
if(count($arr)>1&&count(array_keys($arr,$row['pcid']))>1){
$arr = array_slice($arr,0,$key 1);
}
}
$row['이름'] = $nbsp.$row['이름'];
$row['level'] = $key; //분류 수준, 0은 최상위 분류, 1은 두 번째 수준 분류로 스타일 설정이나 기타 요구 사항에 사용됩니다
$return[] = $행;
$r = $this->procCategory($sid,$row['cid']);
$return = array_merge($return,$r);
}
$return;
}
재귀의 효율성이 상대적으로 낮기 때문에 프로그램 효율성에 중점을 둔다면 이 방법을 사용하지 않거나 이 방법을 개선하는 것이 좋습니다.
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.