1. 程式人生 > 實用技巧 >陣列轉變成樹形資料

陣列轉變成樹形資料

/**
 * 把返回的資料集轉換成Tree
 * @param array $list 要轉換的資料集
 * @param string $pid parent標記欄位
 * @param string $level level標記欄位
 * @return array onethink
 */
function list_to_tree($list, $root = 0, $pk = 'id', $pid = 'pid', $child = 'son')
{
    // 建立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 $parentId = $data[$pid]; if ($root == $parentId) { $tree
[] =& $list[$key]; } else { if (isset($refer[$parentId])) { $parent =& $refer[$parentId]; $parent[$child][] =& $list[$key]; } } } } return $tree; }

陣列轉變成樹結構陣列