이 기사의 예에서는 PHP 트리 클래스를 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
이 예제의 원리는 간단합니다. 데이터 구조를 공부했다면 한 눈에 무슨 뜻인지 알 수 있을 것입니다. 그런데 오늘 사용해보면, 자식 노드 ID(71)가 보다 작은 데이터에 나타났습니다. 상위 노드 ID(104)로 인해 일부 하위 노드가 존재하지 않게 되어 배열로 저장되고 수정되었습니다.
클래스 트리
{
var $data = 배열();
var $child = array(-1=>array());
var $layer = array(-1=>-1);
var $부모 = 배열();
var $num = 배열();
함수 setnode($id, $parent, $value,$num=0)
{
$부모 = $부모 ? $부모 : 0;
$this->data[$id] = $값;
$this->num[$id] = $num;
if (!isset($this->child[$id])) $this->child[$id] = array();
$this->child[$parent][] = $id;
$this->parent[$id] = $부모;
if (!isset($this->layer[$parent]) && $parent == 0)
{
$this->레이어[$id] = 0;
}
그렇지 않으면
{
$this->layer[$id] = $this->layer[$parent] 1;
}
}
함수 getlist(&$tree, $root= 0)
{
foreach($this->child[$root] as $key=>$id)
{
$tree[] = $id;
if($this->child[$id]) $this->getlist($tree, $id);
}
}
함수 getvalue($id)
{
if($this->layer[$id]==0)
{
$this->데이터[$id]를 반환합니다.
}
그렇지 않으면
{
$leftmar.$this->데이터[$id]를 반환합니다.
}
}
함수 getnum($id)
{
$this->num[$id]를 반환합니다.
}
함수 getbitvalue($id)
{
$this->데이터[$id]를 반환합니다.
}
함수 getlayer($id, $space = false)
{
$space를 반환 하시겠습니까? str_repeat($space, $this->layer[$id]) : $this->layer[$id];
}
함수 getparent($id)
{
$this->부모[$id]를 반환합니다.
}
함수 getparents($id)
{
while ($this->parent[$id] != -1)
{
$id = $parent[$this->layer[$id]] = $this->parent[$id];
}
ksort($부모);
재설정($부모);
$부모를 반환합니다.
}
함수 getchild($id)
{
$this->child[$id]를 반환합니다.
}
함수 getchilds($id = 0)
{
$child = 배열($id);
$this->getlist($child, $id);
$child를 반환합니다.
}
함수 printdata()
{
$this->레이어를 반환합니다.
}
}
?>
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.