| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | <?php/** * Created by PhpStorm. * User:  NODELOG * Date: 16/7/16 * Time: 下午7:51 */namespace common\helpers;class Tree{    /**     * 把数据集转换成Tree     * @param $list     * @param string $pk     * @param string $pid     * @param string $child     * @param int $root     * @return array     */    public static function build($list, $pk='id', $pid = 'pid', $child = 'children', $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                $parentId =  $data[$pid];                if ($root == $parentId) {                    $tree[] =& $list[$key];                }else{                    if (isset($refer[$parentId])) {                        $parent =& $refer[$parentId];                        $parent[$child][] =& $list[$key];                    }                }            }        }        return $tree;    }}
 |