:-: ![](https://box.kancloud.cn/f78a0461cdb0d757d4685007de6635ae_400x300.png)
[TOC]
## 数据迁移包(必备)
Thinkphp5.1 原生是没有带数据迁移包的,需要安装。
**安装:**
`composer require topthink/think-migration:^2.0 `
数据迁移包所在的地址:[package](https://packagist.org/packages/topthink/think-migration)
数据迁移包源码地址:[源码地址](https://github.com/top-think/think-migration.git)
安装完成以后,在命令行中运行 thinkphp 的cli **think** 就会看到多了数据迁移命令。
**运行命令:**
`php think`
**运行结果如下:**
![](https://box.kancloud.cn/3a78789fa5acf2b9863c5f1eed3839b5_759x766.png)
## 数组操作包
安装了数据迁移包以后, 还会去安装一下数组操作包,这个是纯属打广告。
**安装:**
`composer require nancheng/pfinal-array:v0.2.1 `
包地址:[package](https://packagist.org/packages/nancheng/pfinal-array)
包源码地址:[源码地址](https://github.com/pfinalclub/pfinal-array)
**文档和例子:**
目前包括以下方法:
* pf\_del\_val() 删除数组中的某个值
* pf\_key\_exists() 判断数组中是否有这个键
* get() 根据键名获取数组中的某个值,支持点语法
* pf\_arr\_sort() 数组排序
* pf\_tree() 二级数组树结构化(不递归)
* pf\_get\_tree() 多级数组结构化(不递归)
* pf\_array\_unique() 多维数组去重
* pf\_array\_depth() 检测数组的维度
* pf\_encode() 数据格式转换 支持 数组转 'json','xml','csv','serialize'
* pf\_array\_flatten() 将多维折叠数组变为一维
* pf\_is\_list() 判断PHP数组是否索引数组
* pf\_array\_rand\_by\_weight() 根据权重获取随机区间返回ID
* pf\_rand\_val() 随机获取数组中的元素
* pf\_rand\_weighted() 按权重 随机返回数组的值
* pf\_array\_shuffle() 随机打乱数组(支持多维数组)
* pf\_array\_insert() 在数组中的给定位置插入元素
* pf\_array\_diff\_both() 返回两个数组中不同的元素
* pf\_getCloud() 返回数组的标签云
* pf\_array\_group\_by() 按指定的键对数组依次分组
* pf\_array\_null() 把数组中的null转换成空字符串
* pf\_count\_element() 统计数组中元素出现的次数
* pf\_map() 重组数组
* pf\_exists() 判断数组中某个键有木有值
* pf\_save() 通过字符串表示将元素保存到数组中
* pf\_arr\_group\_by() 按指定值给数组分组
* pf\_arr\_sort\_by\_key() 按指定键给数组排序
* pf\_arr\_remove\_empty() 递归过滤多维数组中 空白字符,负值,false,null
* pf\_date\_indexed() 生成一个日期数组
* pf\_date\_assoc() 产生一个关联数组`