无限级分类数据格式转换(无限级分类树)
1. 无限级分类数据
本文章中的算法使用的都是以下数据
$array = [
['id' => 1, 'pid' => 0, 'name' => '河南省'],
['id' => 2, 'pid' => 0, 'name' => '山东省'],
['id' => 3, 'pid' => 0, 'name' => '四川省'],
['id' => 4, 'pid' => 1, 'name' => '郑州市'],
['id' => 5, 'pid' => 1, 'name' => '开封市'],
['id' => 6, 'pid' => 4, 'name' => '金水区'],
['id' => 7, 'pid' => 5, 'name' => '兰考县'],
];
2. 使用引用算法转为无限级分类树
$data = getTree($data);
/**
* 数据格式转换
* 将数据转为无限级分类树
*/
function getTree($arr)
{
$refer = [];
$tree = [];
foreach ($arr as $k => $v) {
//创建主键的数组引用
$refer[$v['id']] = & $arr[$k];
}
foreach ($arr as $k => $v) {
//上级id
$pid = $v['pid'];
if ($pid == 0) {
//顶级栏目
$tree[] = & $arr[$k];
} else {
if (isset($refer[$pid])) {
//如果存在上级栏目,则将当前栏目添加到上级栏目的子栏目中
$refer[$pid]['subcat'][] = & $arr[$k];
}
}
}
return $tree;
}
本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!
从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!
本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。
本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。
若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。