PHPTree - php génère rapidement des compétences classifications_php illimitées

不言
Libérer: 2023-03-23 07:58:02
original
4423 Les gens l'ont consulté

Les données arborescentes sont souvent utilisées dans le développement, comme la classification infinie à plusieurs niveaux, qui est une structure arborescente typique. L'algorithme ici utilise la pensée récursive. Afin de simplifier le processus de développement, j'ai écrit un outil pour améliorer l'efficacité du développement. Les amis dans le besoin peuvent s'y référer

C'est PHPTree.

adresse git : https://git.oschina.net/jiusem/PHPTree.git

ou téléchargez depuis Script Home http://www.jb51.net/codes/606002 html. "identifiant ": 1,

"name": "book",

"parent_id": 0,

"expanded": false, //Ne pas développer les nœuds enfants

" children": [

<?php 
require(&#39;PHPTree.class.php&#39;);

//原始数据, 从数据库读出
$data = array(
	array(
		&#39;id&#39;=>1,
		&#39;name&#39;=>&#39;book&#39;,
		&#39;parent_id&#39;=>0
	),
	array(
		&#39;id&#39;=>2,
		&#39;name&#39;=>&#39;music&#39;,
		&#39;parent_id&#39;=>0
	),
	array(
		&#39;id&#39;=>3,
		&#39;name&#39;=>&#39;book1&#39;,
		&#39;parent_id&#39;=>1
	),
	array(
		&#39;id&#39;=>4,
		&#39;name&#39;=>&#39;book2&#39;,
		&#39;parent_id&#39;=>3
	)
);

$r = PHPTree::makeTree($data);
echo json_encode($r);

?>
Copier après la connexion
"élargi": False,

"Enfants": [

"Parent_id": 3,

"Leaf": true

}
]

musique ",
"parent_id": 0,
«leaf»: true
«leaf» }
]



Les données générées sont une structure arborescente, qui peut être utilisé en conjonction avec des frameworks front-end tels que ExtJS. Git contient une démo d'ExtJS, à laquelle vous pouvez vous référer.

Démonstration :




Si vous n'avez pas besoin d'utiliser un framework front-end et utilisez simplement la sortie HTML, vous pouvez utiliser la méthode suivante :


$r = PHPTree::makeTreeForHtml($data);


Obtenez un tableau unidimensionnel, utilisez le champ niveau pour identifier le niveau de classification :




Sortie en tant que balise de sélection :


Démo :

Git inclut une démo qui génère du HTML, à laquelle vous pouvez vous référer.

Concernant la conception de la base de données, il vous suffit de vous assurer que les champs id et parent_id sont inclus. D'autres champs peuvent être ajoutés par vous-même sans affecter la génération de données. parent_id est l'ID parent. S'il s'agit d'une classification de premier niveau, définissez-le sur 0. Bien entendu, les champs sont également configurables. Veuillez continuer à lire, je vais vous présenter quelques méthodes d'utilisation avancées.

Développez les nœuds enfants :

PHPTree::makeTree( $data, array(
 &#39;expanded&#39; => true
));
Copier après la connexion

输出的数据为:

[
{
id:1,
name:'book1',
expanded:true,//展开子节点
children:[
...
]
}
]

自定义主键和父键:

//数据库读出
$data = array(
 array(
  &#39;order_id&#39;=>1, //主键
  &#39;name&#39;=>&#39;book1&#39;,
  &#39;pid&#39;=>0, //父键
  ...
 )
);
PHPTree::makeTree( $data, array(
 &#39;primary_key&#39; => &#39;order_id&#39;,
 &#39;parent_key&#39; => &#39;pid&#39;
));
Copier après la connexion

输出的数据为:

[
{
order_id:1,
name:'book1',
pid:0,
...
}
]

makeTreeForHtml 方法也支持配置主键和父键。

还有其他字段也可以自定义,但下面这些参数仅支持 makeTree 方法:

$r = PHPTree::makeTree($data, array(
 &#39;expanded_key&#39; => &#39;expanded&#39;,
 &#39;children_key&#39; => &#39;children&#39;,
 &#39;leaf_key&#39;  => &#39;leaf&#39;
));
Copier après la connexion

默认,这些字段的配置都是以ExtJS为参考的,如果你使用zTree框架的话,这些字段就需要重新配置了。

zTree 是一款强大的国产树形框架,它还支持 简单JSON格式,是一维数据格式,实际上就不需要用到PHPTree了。当然,PHPTree输出的数据层次感清晰,zTree也是支持的。

相关推荐:

php递归实现无限级分类的开发过程及示例代码

php 实现无限级分类的三种方式

php无限级分类实现方法分析

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!