spindle/collection
Composer 安装命令:
composer require spindle/collection
包简介
The fastest collection(array_map, array_reduce, ..) wrapper
README 文档
README
The fastest collection library
- construct code and run with
eval() - very quick & low memory usage
- You must not pass user's input to this library. It might causes code injection vulnerability.
Usage
composer require 'spindle/collection'
<?php require_once 'vendor/autoload.php'; use Spindle\Collection\Collection as _; _::range(1, 100) ->filter('$_ % 2') ->map('$_ * 2') ->assignTo($val); var_dump($val->toArray());
Methods
map($fn)
_::range(1,4)->map('$_ * 2')->dump(); // 2,4,6,8
filter($fn)
$fn($_) == true==> remain$fn($_) == false==> remove
_::range(1,4)->filter('$_ % 2')->dump(); // 1,3
reject($fn)
$fn($_) == true==> remove$fn($_) == false==> remain
_::range(1,4)->reject('$_ % 2')->dump(); // 2,4
unique()
_::from([1,1,2,1])->unique()->dump(); // 1
column(array|string $columns)
Inspired by array_column.
$a = ['a' => 1, 'b' => 2, 'c' => 3]; _::from([$a, $a])->column(['a', 'c'])->dump(); // ['a' => 1, 'c' => 3], ['a' => 1, 'c' => 3]; _::from([$a, $a])->column('a')->dump(); // 1, 1; _::from([$a, $a])->column(['a'])->dump(); // ['a' => 1], ['a' => 1]
slice($offset, $length = null)
chunk($size)
reduce($fn, $initial = null)
not chainable
$max = _::from([1,2,3,4])->reduce('$_ > $_carry ? $_ : $_carry');
sum()
product()
flip()
exchange value and key.
_::from(['a' => 1, 'b' => 2, 'c' => 3])->flip()->dump(); // [1 => 'a', 2 => 'b', 3 => 'c'];
sort($sort_flags = \SORT_REGULAR)
rsort($sort_flags = \SORT_REGULAR)
usort(callable $cmp)
assignTo(&$val)
export to variable
$val = _::from([1,2,3])->map('$_ * 2'); // equals _::from([1,2,3])->map('$_ * 2')->assignTo($val);
dump()
$_->dump(); // equals var_dump($_->toArray());
spindle/collection 适用场景与选型建议
spindle/collection 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 27 次下载、GitHub Stars 达 20, 最近一次更新时间为 2017 年 06 月 04 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 spindle/collection 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 spindle/collection 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 27
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 20
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: CC0-1.0
- 更新时间: 2017-06-04