在PHP中不使用递归怎么实现一个树

  介绍

这期内容当中小编将会给大家带来有关在PHP中不使用递归怎么实现一个树,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

<强> PHP树——不需要递归的实现方法

/* *   ,*创建父节点树形数组   *大敌;参数   ,* ar 美元;数组,邻接列表方式组织的数据   ,* id 美元;数组中作为主键的下标或关联键名   ,* pid 美元;数组中作为父键的下标或关联键名   ,*返回,多维数组   * */function  find_parent (ar美元,美元id=& # 39; id # 39;,, $ pid=& # 39; pid # 39;), {   ,foreach (ar 美元;as  v)美元,美元的t [v美元($ id]),=, v美元;   美元,foreach  (t  as  k 美元;=祝辞,$ item) {   如果才能(,美元项目($ pid)) {   ,,如果,!收取($ t [$ item [$ pid]][& # 39;父母# 39;][$ item [$ pid]]),)   ,,,,t美元($ item [$ id]][& # 39;父母# 39;][$ item [$ pid]],=,, t美元($ item [$ pid]];   ,,}   ,}   ,return  $ t;   }/* *   ,*创建子节点树形数组   *大敌;参数   ,* ar 美元;数组,邻接列表方式组织的数据   ,* id 美元;数组中作为主键的下标或关联键名   ,* pid 美元;数组中作为父键的下标或关联键名   ,*返回,多维数组   * */function  find_child (ar美元,美元id=& # 39; id # 39;,, $ pid=& # 39; pid # 39;), {   ,foreach (ar 美元;as  v)美元,美元的t [v美元($ id]),=, v美元;   美元,foreach  (t  as  k 美元;=祝辞,$ item) {   如果才能(,$ item [$ pid]), {   ,,$ t [$ item [$ pid]][& # 39;孩子# 39;][$ item [$ id]],=,, t美元($ k);   ,,}   ,}   ,return  $ t;   }      时间=美元才能data 阵列(   ,,阵列(& # 39;id # 39;=祝辞;1,& # 39;父母# 39;=祝辞0,,& # 39;名字# 39;=祝辞& # 39;祖父& # 39;),   ,,阵列(& # 39;id # 39;=祝辞;2,& # 39;父母# 39;=祝辞;1,& # 39;名字# 39;=祝辞& # 39;父亲& # 39;),   ,,阵列(& # 39;id # 39;=祝辞;3,& # 39;父母# 39;=祝辞;1,& # 39;名字# 39;=祝辞& # 39;叔伯& # 39;),   ,,阵列(& # 39;id # 39;=祝辞;4,& # 39;父母# 39;=祝辞;2,& # 39;名字# 39;=祝辞& # 39;自己& # 39;),   ,,阵列(& # 39;id # 39;=祝辞;5,& # 39;父母# 39;=祝辞;4,& # 39;名字# 39;=祝辞& # 39;儿子& # 39;),   ,,);      时间=美元才能p  find_parent ($ data, & # 39; id # 39;,, & # 39;父母# 39;);   时间=美元才能c  find_child ($ data, & # 39; id # 39;,, & # 39;父母# 39;);   Print_r 才能;(c)美元;

<强>执行效果:

数组   (   [1],才能=祝辞数组   ,,,(   ,,,,,(ID),=在1   ,,,,,(父母),=在0   ,,,,,(名字),=祝辞,祖父   ,,,,,(孩子),=在数组   ,,,,,,,(   ,,,,,,,,,[2],=在数组   ,,,,,,,,,,,(   ,,,,,,,,,,,,,(ID),=祝辞;2   ,,,,,,,,,,,,,(父母),=在1   ,,,,,,,,,,,,,(名字),=祝辞,父亲   ,,,,,,,,,,,,,(孩子),=在数组   ,,,,,,,,,,,,,,,(   ,,,,,,,,,,,,,,,,,[4],=在数组   ,,,,,,,,,,,,,,,,,,,(   ,,,,,,,,,,,,,,,,,,,,,(ID),=祝辞;4   ,,,,,,,,,,,,,,,,,,,,,(父母),=祝辞;2   ,,,,,,,,,,,,,,,,,,,,,(名字),=祝辞,自己   ,,,,,,,,,,,,,,,,,,,,,(孩子),=在数组   ,,,,,,,,,,,,,,,,,,,,,,,(   ,,,,,,,,,,,,,,,,,,,,,,,,,[5],=在数组   ,,,,,,,,,,,,,,,,,,,,,,,,,,,(   ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,(ID),=祝辞;5   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

在PHP中不使用递归怎么实现一个树