php 如何用递归通过父id找下级,并追加,来处理一个数组??????

例如把如下的数组:
$data = array(
array('id' => 1,'pid' => 0,'name' => '销售部'),
array('id' => 2,'pid' => 0,'name' => '技术部'),
array('id' => 3,'pid' => 2,'name' => '前端'),
array('id' => 4,'pid' => 1,'name' => '电话销售'),
array('id' => 5,'pid' => 2,'name' => '后端'),
array('id' => 6,'pid' => 1,'name' => '电商销售'),
array('id' => 7,'pid' => 5,'name' => 'php'),
array('id' => 8,'pid' => 7,'name' => 'php子部门'),
array('id' => 9,'pid' => 6,'name' => '淘宝销售'),
array('id' => 10,'pid' => 4,'name' => '打电话员'),
);

最后变成这个样子,

图片说明

另外,,如果明确知道只有3层,那么在项目中遇到这样的问题,使用递归来处理好,还是直接循环呢?从节约性能方面来考虑。。。

递归遍历一下
http://www.360doc.com/content/16/1219/15/16760715_616017047.shtml

可参考:递归无线分类