热点
分布式事务专家谈架构精要:语言选型、函数设计与变量管理,reasoning_content:我们要求以分布式事务专家的口吻,写一个与“技术、科技”相关,关于[后端架构精要:语言选型、函数设计与变量管理指南]的标题直接输出一个标题,不要加说明提示等信息简短精炼,字数控制在30字以内nn标题需要体现分布式事务专家的口吻,同时涵盖后端架构精要、语言选型、函数设计、变量管理可能的标题如:分布式事务专家谈后端架构:语言选型与函数设计变量管理精要 但字数可能超或者更简洁:专家视角:后端架构精要之语言选型与函数变量管理 但需要体现分布式事务专家可以:分布式事务专家:后端架构精要之语言选型与函数变量管理 字数?数一下:分布式事务专家:后端架构精要之语言选型与函数变量管理(共?)分布式事务专家:后端架构精要之语言选型与函数变量管理 汉字+标点:分(1)布(2)式(3)事(4)务(5)专(6)家(7):(8)后(9)端(10)架(11)构(12)精(13)要(14)之(15)语(16)言(17)选(18)型(19)与(20)函(21)数(22)变(23)量(24)管(25)理(26) 共26个字,在30以内但变量管理可能不够精确,原题是变量管理指南,可以保留指南?但字数限制或者分布式事务专家:后端架构精要-语言选型、函数设计与变量管理 多了设计尝试更精简:分布式事务专家:后端架构之语言选型与函数变量管理 去掉精要,更短但原题有精要,最好体现或者分布式事务专家谈架构精要:语言选型与函数变量管理 字数?分布式事务专家谈架构精要:语言选型与函数变量管理 共20字?数:分(1)布(2)式(3)事(4)务(5)专(6)家(7)谈(8)架(9)构(10)精(11)要(12):(13)语(14)言(15)选(16)型(17)与(18)函(19)数(20)变(21)量(22)管(23)理(24) 24字可以但缺少设计,原题有函数设计,这里只用了函数没提设计可以改为函数设计与变量管理但字数增加分布式事务专家谈架构精要:语言选型、函数设计与变量管理 数:分1布2式3事4务5专6家7谈8架9构10精11要12:13语14言15选16型17、18函19数20设21计22与23变24量25管26理27 共27字,可以接受标点算一个字?中文标点算一个字符27字符合输出这个标题即可nn另外,注意要求是与“技术、科技”相关,这个标题已经涉及技术科技直接输出
16 9 月 2026, 周三

 这篇文章给大家分享的是PHP使用递归来按层级查找数据的内容。小编觉得挺实用的,因此分享给大家做个参考,文中示例代码介绍的非常详细,感兴趣的朋友接下来一起跟随小编看看吧。
 
    原理挺简单的,主要是通过父级id一级一级的循环查找子级,使用PHP循环代码也很容易实现,不过如果层级越多,PHP重复代码也越多,这时可以使用递归来实现这功能。
 
    1、首先查出要使用的数据组成一个数组(避免递归里查询数据库,之后根据这个数组组成自己需要的数据就可以了)
    比如得到如下数据:
 
$data = [
 ['id' => '1', 'pid' => '0', 'dsp' => '1'],
 ['id' => '2', 'pid' => '0', 'dsp' => '2'],
 ['id' => '3', 'pid' => '0', 'dsp' => '3'],
 ['id' => '4', 'pid' => '1', 'dsp' => '1-4'],
 ['id' => '5', 'pid' => '4', 'dsp' => '1-4-5'],
 ['id' => '6', 'pid' => '5', 'dsp' => '1-4-5-6'],
 ['id' => '7', 'pid' => '3', 'dsp' => '3-7'],
 ['id' => '8', 'pid' => '2', 'dsp' => '2-8'],
 ['id' => '9', 'pid' => '1', 'dsp' => '1-9'],
 ['id' => '10', 'pid' => '4', 'dsp' => '1-4-10'],
];
 
    2、接下来使用递归重组数据,使数据按层级显示。
 
/**
 * 根据父级id查找子级数据
 * @param $data  要查询的数据
 * @param int $pid 父级id
 */
public function recursion($data, $pid = 0)
{
 static $child = []; // 定义存储子级数据数组
 foreach ($data as $key => $value) {
  if ($value['pid'] == $pid) {
   $child[] = $value; // 满足条件的数据添加进child数组
   unset($data[$key]); // 使用过后可以销毁
   $this->recursion($data, $value['id']); // 递归调用,查找当前数据的子级
  }
 }
 return $child;
}
    得到结果:
 
[
 {
 "id": "1",
 "pid": "0",
 "dsp": "1"
 },
 {
 "id": "4",
 "pid": "1",
 "dsp": "1-4"
 },
 {
 "id": "5",
 "pid": "4",
 "dsp": "1-4-5"
 },
 {
 "id": "6",
 "pid": "5",
 "dsp": "1-4-5-6"
 },
 {
 "id": "10",
 "pid": "4",
 "dsp": "1-4-10"
 },
 {
 "id": "9",
 "pid": "1",
 "dsp": "1-9"
 },
 {
 "id": "2",
 "pid": "0",
 "dsp": "2"
 },
 {
 "id": "8",
 "pid": "2",
 "dsp": "2-8"
 },
 {
 "id": "3",
 "pid": "0",
 "dsp": "3"
 },
 {
 "id": "7",
 "pid": "3",
 "dsp": "3-7"
 }
]

dawei

您错过了

分布式事务专家谈架构精要:语言选型、函数设计与变量管理,reasoning_content:我们要求以分布式事务专家的口吻,写一个与“技术、科技”相关,关于[后端架构精要:语言选型、函数设计与变量管理指南]的标题直接输出一个标题,不要加说明提示等信息简短精炼,字数控制在30字以内nn标题需要体现分布式事务专家的口吻,同时涵盖后端架构精要、语言选型、函数设计、变量管理可能的标题如:分布式事务专家谈后端架构:语言选型与函数设计变量管理精要 但字数可能超或者更简洁:专家视角:后端架构精要之语言选型与函数变量管理 但需要体现分布式事务专家可以:分布式事务专家:后端架构精要之语言选型与函数变量管理 字数?数一下:分布式事务专家:后端架构精要之语言选型与函数变量管理(共?)分布式事务专家:后端架构精要之语言选型与函数变量管理 汉字+标点:分(1)布(2)式(3)事(4)务(5)专(6)家(7):(8)后(9)端(10)架(11)构(12)精(13)要(14)之(15)语(16)言(17)选(18)型(19)与(20)函(21)数(22)变(23)量(24)管(25)理(26) 共26个字,在30以内但变量管理可能不够精确,原题是变量管理指南,可以保留指南?但字数限制或者分布式事务专家:后端架构精要-语言选型、函数设计与变量管理 多了设计尝试更精简:分布式事务专家:后端架构之语言选型与函数变量管理 去掉精要,更短但原题有精要,最好体现或者分布式事务专家谈架构精要:语言选型与函数变量管理 字数?分布式事务专家谈架构精要:语言选型与函数变量管理 共20字?数:分(1)布(2)式(3)事(4)务(5)专(6)家(7)谈(8)架(9)构(10)精(11)要(12):(13)语(14)言(15)选(16)型(17)与(18)函(19)数(20)变(21)量(22)管(23)理(24) 24字可以但缺少设计,原题有函数设计,这里只用了函数没提设计可以改为函数设计与变量管理但字数增加分布式事务专家谈架构精要:语言选型、函数设计与变量管理 数:分1布2式3事4务5专6家7谈8架9构10精11要12:13语14言15选16型17、18函19数20设21计22与23变24量25管26理27 共27字,可以接受标点算一个字?中文标点算一个字符27字符合输出这个标题即可nn另外,注意要求是与“技术、科技”相关,这个标题已经涉及技术科技直接输出