PHP 二維數組轉換成樹狀數組

/**
 * @param array $list 要轉換的結果集
 * @param string $pid parent標記字段
 * @param string $level level標記字段
 */
function list_to_tree($list, $pk='zid', $pid = 'fid', $child = 'kid', $root = 0) {
    //創建Tree
    $tree = array();

    if (is_array($list)) {
        //創建基於主鍵的數組引用
        $refer = array();

        foreach ($list as $key => $data) {
            $refer[$data[$pk]] = &$list[$key];
        }

        foreach ($list as $key => $data) {
            //判斷是否存在parent
            $parantId = $data[$pid];

            if ($root == $parantId) {
                $tree[] = &$list[$key];
            } else {
                if (isset($refer[$parantId])) {
                    $parent = &$refer[$parantId];
                    $parent[$child][] = &$list[$key];
                }
            }
        }
    }

    return $tree;
}

非常好用的函數,但是原作者我沒找到。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章