Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo thinkphp utiliza la recursividad para lograr una clasificación infinita

Cómo thinkphp utiliza la recursividad para lograr una clasificación infinita

Una función recursiva es una función que se autollama y se llama a sí misma directa o indirectamente en el cuerpo de la función, pero se deben establecer las condiciones para la autollamada. Si se cumplen las condiciones, se llama a la función en sí. Si no se cumplen las condiciones, la autollamada de la función finaliza y luego devuelve el control principal del proceso actual a la función de nivel superior para su ejecución. como esto.

Ideas:

Primero, establezca la base de datos y las tablas correspondientes:

Tenga en cuenta la relación de clave externa entre pid e id. El pid de nivel superior es 0. .

class?Tree{

//Definir una matriz vacía

static?public?$treeList?=?array();

//Recibe una matriz bidimensional que contiene $data, $pid por defecto es 0 y $level por defecto es 1

static?public?function?tree($data,$pid=0,$level? =?1){

foreach($ datos?$v){

if($v['pid']==$pid){

$v['level']=$level;

self::$treeList[]=$v;//cargar el resultado en $treeList

self::tree($ datos,$v['id'],$nivel+1);

}

}

return?self::$treeList?; p>

}

}

Siguiente llamada al método

public?function?index (){? $res =M('cate')->select();

$res=Árbol::árbol($res);

$this->cate=$res; ?

$this->display();

}

Mostrar en la página de plantilla de tabla:

Imágenes válidas: