火星应用/地图助手

协助处理地图表的相关操作。

0.1.0 2020-05-10 12:12 UTC

This package is auto-updated.

Last update: 2024-09-10 22:34:43 UTC


README

  • 协助处理地图表的相关操作。
  • 提供统一的数据访问函数,以便在整个程序中共享。

Latest Stable Version Total Downloads Latest Unstable Version License

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']