原本写过一个树形类,通过字符串生成,之后发现不是很好用,或者说跟模板引擎不切合,不够灵活。
现在重写一遍,希望对看到这篇文章的朋友有所帮助 --by longDD
// +---------------------------------------------------------------------------------------------------
// | Before finding the right people, the only need to do is to make yourself good enough.
// +---------------------------------------------------------------------------------------------------
// | Author: LongDD <741886920@qq.com> 2013.7.7
// +---------------------------------------------------------------------------------------------------
// | Description: 树形类
// +---------------------------------------------------------------------------------------------------
//
class Tree{
//传入数组
public $arr = array();
//树形结构符号
public $icon = array();
//多维数组
public $list = array();
//tree 二维数组
public $tree = array();
//nav 面包屑
public $nav = array();
//$id字段
public $id = '';
//$pid字段
public $pid = '';
//根id
public $root = 0;
//子类索引
public $index_child = 'child';
//树形图标
public $icons = array('body'=>'|','branch'=>'├','end'=>'└');
//前缀
public $prefix = 'prefix';
//构造
public function __construct($arr = null,$root = 0,$id = 'id',$pid = 'pid'){
if(empty($arr)){
return false;
exit;
}
$this->id = $id;
$this->pid = $pid;
$this->root = $root;
$this->arr = $arr;
}
//获取父类 (追溯) ps:面包屑
public function get_nav($id = null){
if(empty($id)){
exit('ID必须');
}
$this->create_nav($id);
return $this->nav;
}
//创建面包屑
public function create_nav($id){
foreach ($this->arr as $v) {
if($v[$this->id] == $id){
$this->nav[] = $v;
$this->create_nav($v['pid']);
}
}
}
//获取子类(一层)
public function get_child($pid = null){
$pid = empty($pid)?$this->root:$pid;
$rst = array();
foreach ($this->arr as $k => $v) {
if($v[$this->pid] == $pid){
$rst[] = $v;
}
}
return $rst;
}
//获取数组 (多层嵌套)
public function get_list($pid = null){
$pid = empty($pid)?$this->root:$pid;
$thisSQL Server 2014 BI新特性(二)结合Data Explorer和GeoFlow进行数据分析 - 哥本哈士奇(aspnetx) 阅读原文»
Data Explorer和GeoFlow作为Excel的新功能被写入到即将发布的SQL Server 2014当中。Data Explorer为业务分析人员提供了一种数据获取,整理以及组织的方式,通过GeoFlow功能,数据将被形象地展现在3D地球中,使数据中蕴含的信息更形象更有说服力。
Data Explorer下载地址:
http://www.microsoft.com/en-us/download/details.aspx?id=36803
GeoFlow下载地址:
http://www.microsoft.com/en-us/download/details.aspx?id=38395
Data Explorer提供了很棒的数据获取功能,在上一篇的介绍中,我们可以发现它不但支持多种类的数据源,还方便我们很容易的把数据拿到Excel工作簿中。
接下来,首先我们找点数据来,获取数据最好的方式就是从国家统计局的网站了,打开浏览器,输入国家统计局的网址:
http://www.stats.gov.cn/tjsj/qtsj/gjsj/
点击国际数据,找到人均国民收入链接。
打开后我们可以看到在网页上的数据统计信息。我们需要做的就是把这个页面的地址复制下来。
回到Excel 2013种,在DATA EXPLORER下,点击From Web。
粘贴刚才复制的地址链接。
在Query界面中,可以看到被检索出来的数据结构,点击Table 0,可以看到刚才王爷上的信息已经被结构化显示在右面的表格中。
点击Done之后,可以看到数据已经被导入到Excel工作簿中。
然后,把数据复制到另外一张工作簿然后按照下面的格式将数据重新整理一下,主要是把前两行删除,然后删除掉前几行粗粒度的数据,然后将年的猎头加一个Y前缀,还有把数据都整理成数字类型。
将数据组织好之后,点击INSERT,MAP下的Launch GeoFlow。
在新弹出的界面中,我们可以看到一个大大的地球,以及右侧系统检测到的数据结构。
首先,选取Country or Area, 然后在GEOGRAPHY中确保这个字段是作为Country类型被选中。点击Map It。
可以看到相应国家的数据点已经被标出,接下来勾选相应的列把数据展现在地球上。
留意年之间的数据是序列数据,所以确保HEIGHT类型中选择的是Clustered。
最后,拖动地区,观察我们获取的数据吧。
欧洲地区,整体水平还是蛮高的。
非洲区,跟大家想象的差不多。
亚洲区,澳大利亚和日本明显居高。
美洲区。
此外,GeoFlow还为我们提供了多种主题供我们选择。
以上,我们可以看到Data Explorer和GeoFlow非常方便我们对数据的获取处理以及在地图上的展现,而不必要再去搭建专门的GIS引擎。我微软在新产品中,正在整合商业智能更多的功能以及逐步的降低商业智能的门槛,并且也正在紧随大数据的脚步。
本文链接:http://www.cnblogs.com/aspnetx/p/3175909.html,转载请注明。
没有评论:
发表评论