火星应用 / 地图助手
协助处理地图表的相关操作。
0.1.0
2020-05-10 12:12 UTC
Requires
- php: ^7
- marsapp/arrayhelper: ^0.3
Requires (Dev)
- phpunit/phpunit: ^6
This package is auto-updated.
Last update: 2024-09-10 22:34:43 UTC
README
- 协助处理地图表的相关操作。
- 提供统一的数据访问函数,以便在整个程序中共享。
2. 概述
3. 安装
3.1. Composer 安装
# composer require marsapp/maphelper
3.2. 包含
在使用前包含 composer 自动加载器。
require __PATH__ . "vendor/autoload.php";
4. 使用方法
4.1. 示例
命名空间使用
// Use namespace use marsapp\helper\mapping\MapHelper; // Data $data = [ ['c_sn' => 'a110', 'u_sn' => 'b1', 'u_no' => 'a001', 'u_name' => 'name1'], ['c_sn' => 'a110', 'u_sn' => 'b2', 'u_no' => 'b012', 'u_name' => 'name2'], ]; // Index by MapHelper::add($data, 'userInfo', ['c_sn', 'u_no']); // Get name by a110 => a001 => u_name $name = MapHelper::getMap('userInfo', ['a110', 'a001', 'u_name']); // $name = name1;
5. API 参考
5.1. init()
初始化地图缓存表。
init(string $mapName = null) : MapHelper
参数
- array $mapName: 初始化时的地图名称,如果值为 null,则初始化所有。
返回值
- MapHelper
示例
// Use namespace use marsapp\helper\mapping\MapHelper; // Clear the Map cache with the specified name, like: userInfo. MapHelper::init('userInfo'); //Clear all Map cache. MapHelper::init();
5.2. add()
向地图缓存表添加数据。需要指定处理方法。
add(array $data, string $mapName, array $indexBy, string $indexType = 'indexBy') : MapHelper
参数
- array $data: 原始数据,想要保存到地图缓存。
- string $mapName: 地图名称
- array $indexBy: 分组索引列表
- string $indexType: 类型列表:indexBy, groupBy, indexOnly
返回值
- MapHelper
示例
// Use namespace use marsapp\helper\mapping\MapHelper; // Data $data = [['c_sn' => 'a110', 'u_sn' => 'b1', 'u_no' => 'a001', 'u_name' => 'name1'], ['c_sn' => 'a110', 'u_sn' => 'b2', 'u_no' => 'b012', 'u_name' => 'name2']]; // Store to map cache - Useing indexBy MapHelper::add($data, 'map1', ['c_sn', 'u_sn'], 'indexBy'); // Get Map data $result = MapHelper::getMap('map1'); var_export($result); // Output: // array ( // 'a110' => // array ( // 'b1' => // array ( // 'c_sn' => 'a110', // 'u_sn' => 'b1', // 'u_no' => 'a001', // 'u_name' => 'name1', // ), // 'b2' => // array ( // 'c_sn' => 'a110', // 'u_sn' => 'b2', // 'u_no' => 'b012', // 'u_name' => 'name2', // ), // ), // ) // Store to map cache - Useing groupBy MapHelper::add($data, 'map2', ['c_sn', 'u_sn'], 'groupBy'); // Get Map data $result = MapHelper::getMap('map2'); var_export($result); // Output: // array ( // 'a110' => // array ( // 'b1' => // array ( // 0 => // array ( // 'c_sn' => 'a110', // 'u_sn' => 'b1', // 'u_no' => 'a001', // 'u_name' => 'name1', // ), // ), // 'b2' => // array ( // 0 => // array ( // 'c_sn' => 'a110', // 'u_sn' => 'b2', // 'u_no' => 'b012', // 'u_name' => 'name2', // ), // ), // ), // ) // Store to map cache - Useing indexOnly MapHelper::add($data, 'map3', ['c_sn', 'u_sn'], 'indexOnly'); // Get Map data $result = MapHelper::getMap('map3'); var_export($result); // Output: // array ( // 'a110' => // array ( // 'b1' => '', // 'b2' => '', // ), // )
5.3. addRaw()
将原始数据添加到地图缓存表。数据将直接存储在缓存中。
addRaw(array $data, string $mapName) : MapHelper
参数
- array $data: 原始数据,想要保存到地图缓存。
- string $mapName: 地图名称
返回值
- MapHelper
示例
// Use namespace use marsapp\helper\mapping\MapHelper; // Data $data = [['c_sn' => 'a110', 'u_sn' => 'b1', 'u_no' => 'a001', 'u_name' => 'name1'], ['c_sn' => 'a110', 'u_sn' => 'b2', 'u_no' => 'b012', 'u_name' => 'name2']]; // Store to map cache MapHelper::addRaw($data, 'map1'); // Get Map data $result = MapHelper::getMap('map1'); var_export($result); // Output: // [['c_sn' => 'a110', 'u_sn' => 'b1', 'u_no' => 'a001', 'u_name' => 'name1'], ['c_sn' => 'a110', 'u_sn' => 'b2', 'u_no' => 'b012', 'u_name' => 'name2']]
5.4. sort()
对地图数据进行排序。在执行定位点时,需要先排序。
sort(string $mapName, $type = 'ksort') : MapHelper
参数
- string $mapName: 地图名称
- string $type: 排序类型,支持 'ksort', 'krsort'
返回值
- 返回结果数组。
示例
// Use namespace use marsapp\helper\mapping\MapHelper; $data = ['1111' => 'name1', '3333' => 'name3', '2222' => 'name2']; // Add map MapHelper::addRaw($data, 'testMap'); // Sort Map and output $result = MapHelper::sort('testMap', 'ksort')->getMap('testMap'); var_export($result); // Output: ['1111' => 'name1', '2222' => 'name2', '3333' => 'name3'] // Sort Map and output $result = MapHelper::sort('testMap', 'krsort')->getMap('testMap'); var_export($result); // Output: ['3333' => 'name3', '2222' => 'name2', '1111' => 'name1']
5.5. getMap()
根据键重新索引数据
getMap(string $mapName, array $indexBy = [], $exception = false) : mixed
参数
- string $mapName: 地图名称
- array $indexBy: 搜索索引列表
- bool $exception: 默认 false
抛出异常的返回值
- array|mixed
示例
// Use namespace use marsapp\helper\mapping\MapHelper; $data = ['1111' => 'name1', '3333' => 'name3', '2222' => 'name2']; // Add map MapHelper::addRaw($data, 'testMap'); $result = MapHelper::getMap('testMap'); var_export($result); // Output: ['1111' => 'name1', '3333' => 'name3', '2222' => 'name2']
5.6. location()
通过位置点获取数据。在执行定位点时,需要先排序。
location(string $mapName, array $indexBy, string $location) : mixed
参数
- string $mapName: 地图名称
- array $indexBy: 定位点前的索引列表
- string $location: 位置点字段名称
返回值
- mixed
示例
// Use namespace use marsapp\helper\mapping\MapHelper; // Data $data = ['lv1' => ['lv2' => ['2011-05-06' => '11', '2012-01-01' => '12', '2015-09-16' => '15']]]; // Add map MapHelper::addRaw($data, 'testMap'); // Get data by location point. $result = MapHelper::location('testMap', ['lv1', 'lv2'], '2011-12-05'); var_export($result); // Output: 11 // Get data by location point. $result = MapHelper::location('testMap', ['lv1', 'lv2'], '2012-12-05'); var_export($result); // Output: 12
5.7. hasMap()
根据键重新索引数据
hasMap(string $mapName) : boolean
参数
- array $mapName: 地图名称。
返回值
- boolean
示例
// Use namespace use marsapp\helper\mapping\MapHelper; // Add map MapHelper::addRaw([1, 2, 3, 4], 'map1'); // Determine whether the target map table exists $mapName = 'map1'; if (MapHelper::hasMap($mapName)) { echo $mapName . ' Exist.'; } else { echo $mapName . ' Not exist.'; }
5.8. mapList()
根据键重新索引数据
mapList() : array
返回值
- array.
示例
// Use namespace use marsapp\helper\mapping\MapHelper; // Add map MapHelper::addRaw([1, 2, 3, 4], 'map1'); MapHelper::addRaw(['a', 'b'], 'map2'); // Get map name list and print it. $mapList = MapHelper::mapList(); var_export($mapList); // output: ['map1', 'map2']