PHP递归遍历多维数组实现无限分类的方法,递归多维
本文实例讲述了PHP递归遍历多维数组实现无限分类的方法。分享给大家供大家参考,具体如下:
<?php //$data[]=array('id'=>1,'parentid'=>0,'name'=>'中国','img'=>'52091199'); $data[]=array('id'=>1,'parentid'=>0,'name'=>'中国'); $data[]=array('id'=>2,'parentid'=>0,'name'=>'美国'); $data[]=array('id'=>3,'parentid'=>0,'name'=>'韩国'); $data[]=array('id'=>4,'parentid'=>1,'name'=>'北京'); $data[]=array('id'=>5,'parentid'=>1,'name'=>'上海'); $data[]=array('id'=>6,'parentid'=>1,'name'=>'广西'); $data[]=array('id'=>7,'parentid'=>6,'name'=>'桂林'); $data[]=array('id'=>8,'parentid'=>6,'name'=>'南宁'); $data[]=array('id'=>9,'parentid'=>6,'name'=>'柳州'); $data[]=array('id'=>10,'parentid'=>2,'name'=>'纽约'); $data[]=array('id'=>11,'parentid'=>2,'name'=>'华盛顿'); $data[]=array('id'=>12,'parentid'=>3,'name'=>'首尔'); $tree=build_tree($data,0); //echo memory_get_usage(); print_r($tree); function findChild(&$arr,$id){ $childs=array(); foreach ($arr as $k => $v){ if($v['parentid']== $id){ $childs[]=$v; } } return $childs; } function build_tree($rows,$root_id){ $childs=findChild($rows,$root_id); if(empty($childs)){ return null; } foreach ($childs as $k => $v){ $rescurTree=build_tree($rows,$v['id']); if( null != $rescurTree){ $childs[$k]['childs']=$rescurTree; } } return $childs; } ?>
运行结果:
Array ( [0] => Array ( [id] => 1 [parentid] => 0 [name] => 中国 [childs] => Array ( [0] => Array ( [id] => 4 [parentid] => 1 [name] => 北京 ) [1] => Array ( [id] => 5 [parentid] => 1 [name] => 上海 ) [2] => Array ( [id] => 6 [parentid] => 1 [name] => 广西 [childs] => Array ( [0] => Array ( [id] => 7 [parentid] => 6 [name] => 桂林 ) [1] => Array ( [id] => 8 [parentid] => 6 [name] => 南宁 ) [2] => Array ( [id] => 9 [parentid] => 6 [name] => 柳州 ) ) ) ) ) [1] => Array ( [id] => 2 [parentid] => 0 [name] => 美国 [childs] => Array ( [0] => Array ( [id] => 10 [parentid] => 2 [name] => 纽约 ) [1] => Array ( [id] => 11 [parentid] => 2 [name] => 华盛顿 ) ) ) [2] => Array ( [id] => 3 [parentid] => 0 [name] => 韩国 [childs] => Array ( [0] => Array ( [id] => 12 [parentid] => 3 [name] => 首尔 ) ) ) )
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《php排序算法总结》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《PHP数学运算技巧总结》、《php正则表达式用法总结》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Dreamweaver Mac version
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.
