定制 buqiu/arr 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

buqiu/arr

Composer 安装命令:

composer require buqiu/arr

包简介

数组增强组件主要是对数组等数据进行处理,如无限级分类操作、商品规格的迪卡尔乘积运算等

README 文档

README

数组增强组件主要是对数组等数据进行处理,如无限级分类操作、商品规格的迪卡尔乘积运算等

安装组件

使用 composer 命令安装或下载元代码使用

composer require buqiu/arr

功能介绍

根据键名获取数据

如果键名不存在时返回默认值,支持键名的点语法

$d=['a'=>1,'b'=>2];
Arr::get($d,'c','没有数据哟');

使用点语法查找:

$d = ['web' => [ 'id' => 1, 'url' => 'lnmp.org.cn' ]];F
Arr::get($d,'web.url');

排队字段获取数据

以下代码获取除 id、url以外的数据

$d = ['id' => 1,'url' => 'lnmp','name'=>'ken'];
print_r(Arr::getExtName($d,['id','url']));

设置数组元素值支持点语法

$data = (Arr::set([],'a.b.c',99);

改变数组键名大小写

$data = array('name'=>'lnmp',array('url'=>'lnmp.org.cn'));
$data = (Arr::keyCase($data,1); 
第2个参数为类型: 1 大写  0 小写

不区分大小写检测键名是否存

(Arr::keyExists('K',['K'=>'Kne']);

数组值大小写转换

(Arr::valueCase(['name'=>'lnmp'],1); 
第2个参数为类型: 1 大写  0 小写

数组进行整数映射转换

$data = ['status'=>1];
$d = (Arr::intToString($data,['status'=>[0=>'关闭',1=>'开启']]); 

数组中的字符串数字转为数值类型

$data = ['status'=>'1','click'=>'200'];
$d = (Arr::stringToInt($data); 

根据下标过滤数据元素

$d = [ 'id' => 1, 'url' => 'lnmp.org.cn','title'=>'Ken' ];
print_r(Arr::filterKeys($d,['id','url']));
//过滤 下标为 id 的元素

当第三个参数为 0 时只保留指定的元素

$d = [ 'id' => 1, 'url' => 'lnmp.org.cn','title'=>'ken' ];
print_r(Arr::filterKeys($d,['id'],0));
//只显示id与title 的元素

获得树状结构

(Arr::tree($data, $title, $fieldPri = 'id', $fieldPid = 'pid');
参数                   	说明
$data                 	数组
$title                	字段名称
$fieldPri             	主键 id
$fieldPid             	父 id

获得目录列表

(Arr::channelList($data, $pid = 0, $html = " ", $fieldPri = 'id', $fieldPid = 'pid', $level = 1);
参数                     说明 
data                 	操作的数组
pid                  	父级栏目的 id 值
html                	栏目名称前缀,用于在视图中显示层次感的栏目列表 
fieldPri              	唯一键名,如果是表则是表的主键
fieldPid              	父 ID 键名
level                 	等级(不需要传参数,系统运行时使用 ) 

获得多级目录列表(多维数组)

(Arr::channelLevel($data, $pid = 0, $html = " ", $fieldPri = 'id', $fieldPid = 'pid') 
参数                     说明
data                    操作的数组
pid                     父级栏目的 id 值
html                    栏目名称前缀,用于在视图中显示层次感的栏目列表
fieldPri                唯一键名,如果是表则是表的主键
fieldPid                父 ID 键名

获得所有父级栏目

(Arr::parentChannel($data, $sid, $fieldPri = 'id', $fieldPid = 'pid');
参数                     说明
data                    操作的数组
sid                     子栏目
fieldPri                唯一键名,如果是表则是表的主键
fieldPid                父 ID 键名

是否为子栏目

(Arr::isChild($data, $sid, $pid, $fieldPri = 'cid', $fieldPid = 'pid')
参数                      说明
data                     操作的数组
sid                      子栏目id
pid                      父栏目id
fieldPri                 唯一键名,如果是表则是表的主键
fieldPid                 父 ID 键名

是否有子栏目

(Arr::hasChild($data, $id, $fieldPid = 'pid')
参数                      说明
data                     操作的数组
cid                      栏目id
fieldPid                 父 ID 键名

无限级栏目分类

(Arr::categories($categories,$pid = 0,$title = 'title',$id = 'id',$parent_id = 'parent_id')
参数						 说明
$categories				 操作的数组
$pid					 父级编号
$title                   栏目字段
$id						 主键名
$parent_id				 父级字段名

迪卡尔乘积

(Arr::descartes($arr, $tmp = array())

buqiu/arr 适用场景与选型建议

buqiu/arr 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.95k 次下载、GitHub Stars 达 6, 最近一次更新时间为 2019 年 07 月 09 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 buqiu/arr 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 buqiu/arr 我们能提供哪些服务?
定制开发 / 二次开发

基于 buqiu/arr 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 1.95k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 7
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 6
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-07-09