PHP TREE【PHP树形菜单jSON】--NB

这段代码实现了一个将二维数组转换为树形结构的功能,用于组织数据。类`Arr_list_to_tree_class`中定义的方法`Arr_list_to_tree`接收一个包含`id`、`pid`和`children`字段的数组,以及根节点ID,然后构造出树形结构。最后,将转换后的树形结构数据用JSON编码并返回,包含状态码、消息和数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


/**
 * Arr_list_to_tree 
 *
 * @param [type] $lists
 * @param string $id
 * @param string $pid
 * @param string $child
 * @param integer $root
 * @return void
 */

class Arr_list_to_tree_class
{
    function Arr_list_to_tree($lists, $id = 'id', $pid = 'pid', $children = 'children', $root = 0)
    {
        // 创建Tree
        $tree = array();
        if (is_array($lists)) {
            // 创建基于主键的数组引用
            $refer = array();
            foreach ($lists as $key => $data) {
                $refer[$data[$id]] = &$lists[$key];
            }
            foreach ($lists as $key => $data) {
                // 判断是否存在parent
                $parent_Id = $data[$pid];
                if ($root == $parent_Id) {
                    $tree[] = &$lists[$key];
                } else {
                    if (isset($refer[$parent_Id])) {
                        $parent = &$refer[$parent_Id];
                        $parent[$children][] = &$lists[$key];
                    }
                }
            }
        }
        return $tree;
    }
}
$show_data_tree = new Arr_list_to_tree_class();
$show_tree = $show_data_tree->Arr_list_to_tree($sql_back_datas, 'm_id', 'm_pid', 'children', 0);


$show_tree_diy = array(
    'code' => 200,
    'msg' => '成功',
    'data' => $show_tree
);
echo json_encode($show_tree_diy);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值