生成无限极树,$data为二维数组数据
function get_tree($data, $tid, $idField, $pidField, $sonName = 'son') {
$tree = array();
foreach ($data as $key => $value) {
if (is_array($value)) {
if ($value[$pidField] == "$tid") { // 父亲找到儿子
$value[$sonName] = get_tree($data, $value[$idField], $idField, $pidField, $sonName);
$tree[] = $value;
}
} else {
if ($value->$pidField == "$tid") { // 父亲找到儿子
$temp = clone $value;
$temp->$sonName = get_tree($data, $value->$idField, $idField, $pidField, $sonName);
$tree[] = $temp;
}
}
}
return $tree;
}
- 第一个参数,需要处理的数组
- 第二个参数,主键id
- 第三个参数,主键字段
- 第四个参数,父级字段
- 第五个参数,子级