定制 mcaskill/php-array-chunk-by 二次开发

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

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

mcaskill/php-array-chunk-by

Composer 安装命令:

composer require mcaskill/php-array-chunk-by

包简介

Splits an array into chunks using a callback function.

关键字:

README 文档

README

(PHP 5 >= 5.4)
array_chunk_by — Splits an array into chunks using a callback function.

Description

array array_chunk_by( array $array, mixed $key1 [, mixed $... ] )

Chunks an array into arrays by iteratively applying the $callback function to the elements of the $array.

Based on Raivo Laanemets' groupAdjacent() function.

Parameters

  • $array — The array to have chunking performed on.
  • $callback — The callback function to use.

    bool callback ( mixed $previous, mixed $current )
    
    • $previous - Holds the value of the previous iteration.
    • $current - Holds the value of the current iteration.

    If the $callback function returns TRUE, the the current value from $array is split into a new chunk.

  • $preserve_keys — When set to TRUE keys will be preserved. Default is FALSE which will reindex the chunk numerically.

Return Values

Returns a multidimensional numerically indexed array, starting with zero, with each dimension containing related elements.

Examples

Example #1 array_chunk_by()

Splits the array where the difference between adjacent elements is greater than 1.

$input  = [ 1, 2, 3, 4, 14, 21, 23, 28, 29 ];
$result = array_chunk_by( $input, function ($prev, $curr) {
  return ($curr - $prev) > 1;
});

var_export( $result );

The above example will output:

array (
  0 => 
  array (
    0 => 1,
    1 => 2,
    2 => 3,
    3 => 4,
  ),
  1 => 
  array (
    0 => 14,
  ),
  2 => 
  array (
    0 => 21,
  ),
  3 => 
  array (
    0 => 23,
  ),
  4 => 
  array (
    0 => 28,
    1 => 29,
  ),
)

Example #2 array_chunk_by()

Groups the array where adjacent elements share the same value.

$input  = [ 5, 5, 3, 5, 3, 3 ];
$result = array_chunk_by( $input, function ($prev, $curr) {
  return ($previous != $current);
});

var_export( $result );

The above example will output:

array (
  0 => 
  array (
    0 => 5,
    1 => 5,
  ),
  1 => 
  array (
    0 => 3,
  ),
  2 => 
  array (
    0 => 5,
  ),
  3 => 
  array (
    0 => 3,
    1 => 3,
  ),
)

Installation

With Composer

$ composer require mcaskill/php-array-chunk-by

Without Composer

Why are you not using Composer?

Download Function.Array-Group-By.php from the gist and save the file into your project path somewhere.

mcaskill/php-array-chunk-by 适用场景与选型建议

mcaskill/php-array-chunk-by 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 10.78k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2018 年 08 月 24 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「function」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

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

围绕 mcaskill/php-array-chunk-by 我们能提供哪些服务?
定制开发 / 二次开发

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

BUG 修复 & 性能优化

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

项目外包 & 长期维护

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

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

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-08-24