zoukankan      html  css  js  c++  java
  • 精品_无限分类 简单

    <?php
    header("Content-Type:text/html; charset=utf-8");
    $data = array(
        array('cid'=>26,'parent_cid'=>0,'name'=>"饭"),
        array('cid'=>27,'parent_cid'=>26,'name'=>"米饭"),
        array('cid'=>28,'parent_cid'=>27,'name'=>"蛋炒饭"),
        array('cid'=>29,'parent_cid'=>28,'name'=>"粗茶淡饭")
    	);
    //两次循环组装array的树形态
    /*
    *  @$date:
    *  @$root:
    *  @$cid:
    *  @$pid:
    *  @$child:
    */
    function data2tree($data,$root=0,$cid='id',$pid='pid',$child="_child")
    {
         $tree = array();
         $_temp = array();
         foreach($data as $key=>$val)
         {
         	 $_temp[$val[$cid]] = & $data[$key];
         }
         //$data[0]['name']="饭xx";
         //var_dump($_temp);
    
         
    
         foreach($data as $key=>$val)
         {
         	$parentId = $val[$pid]; //上级id
         	if($root == $parentId)
         	{
         		$tree[] = &$data[$key];
         	}else{
         		if(isset($_temp[$parentId])) //判断在$_temp数组中是否存在该父元素
         		{
         			$parent = &$_temp[$parentId]; //将这个父级用引用放处到一个$parent变量中去
         			$parent[$child][]=&$data[$key]; //设置当前元素为$parent元素的子元素
         		}
         	}
         }
         return $tree;
    }
    
    //递归输出数据
    function output($tree)
    {
    	if(count($tree)>=1)
    	{
    		foreach($tree as $v)
    		{
    		    echo "<li>{$v['name']}";
    		    if(isset($v['_child']) && count($v['_child']) >=1)
    		    {
    		    	echo "<ul>".output($v['_child'])."</ul>";
    		    }
    		    echo "</li>";
    		}
    	}
    }
    $tree = data2tree ( $data, 0, 'cid', 'parent_cid' );
    output($tree);
    echo "<BR><BR><BR>";
    
    
    $items = array(
        1 => array('id' => 1, 'pid' => 0, 'name' => '江西省'),
        2 => array('id' => 2, 'pid' => 0, 'name' => '黑龙江省'),
        3 => array('id' => 3, 'pid' => 1, 'name' => '南昌市'),
        4 => array('id' => 4, 'pid' => 2, 'name' => '哈尔滨市'),
        5 => array('id' => 5, 'pid' => 2, 'name' => '鸡西市'),
        6 => array('id' => 6, 'pid' => 4, 'name' => '香坊区'),
        7 => array('id' => 7, 'pid' => 4, 'name' => '南岗区'),
        8 => array('id' => 8, 'pid' => 6, 'name' => '和兴路'),
        9 => array('id' => 9, 'pid' => 7, 'name' => '西大直街'),
        10 => array('id' => 10, 'pid' => 8, 'name' => '东北林业大学'),
        11 => array('id' => 11, 'pid' => 9, 'name' => '哈尔滨工业大学'),
        12 => array('id' => 12, 'pid' => 8, 'name' => '哈尔滨师范大学'),
        13 => array('id' => 13, 'pid' => 1, 'name' => '赣州市'),
        14 => array('id' => 14, 'pid' => 13, 'name' => '赣县'),
        15 => array('id' => 15, 'pid' => 13, 'name' => '于都县'),
        16 => array('id' => 16, 'pid' => 14, 'name' => '茅店镇'),
        17 => array('id' => 17, 'pid' => 14, 'name' => '大田乡'),
        18 => array('id' => 18, 'pid' => 16, 'name' => '义源村'),
        19 => array('id' => 19, 'pid' => 16, 'name' => '上坝村'),
    );
    
    function getTree9($items)
    {
    	 $tree = array();
    	 foreach ($items as $item) 
    	 {
    	 	if(isset($items[$item['pid']])) //判断父ID是否存在
    	 	{
    	 		$items[$item['pid']]['son'][] = &$items[$item['id']];
    	 	}else{
    	 		$tree[] = &$items[$item['id']];
    	 	}
    	 }
    	 return $tree;
    }
    
    //$arr = getTree9($items);
    //var_dump($arr);
    function getTree5($items){
    	foreach($items as $item){
    		$items[$item['pid']]['son'][$item['id']] = &$items[$item['id']];	
    	}
    	return isset($items[0]['son']) ? $items[0]['son'] : array();
    }
    $arr = getTree5($items);
    var_dump($arr);
    
    
    ?>
    

      

  • 相关阅读:
    [Swift]LeetCode954. 二倍数对数组 | Array of Doubled Pairs
    [Xcode 实际操作]九、实用进阶-(18)图像人脸识别:对图片中的人像进行面部检测
    Hibernate or JPA Annotation中BLOB、CLOB注解写法
    install_driver(mysql) failed
    【Android】Android中AlertDialog对话框的使用实例
    POJ 2442 Sequence【堆】
    distributed OSGI demo
    DSP/BIOS使用之初窥门径——滴答时钟及烧写Flash
    提取工厂类
    【JAVA学习】struts2的action中使用session的方法
  • 原文地址:https://www.cnblogs.com/xiangxiaodong/p/3034666.html
Copyright © 2011-2022 走看看