php实现把数组按指定的个数分隔


Posted in PHP onFebruary 17, 2014
/**
 * 
 * 把数组按指定的个数分隔
 * @param array $array 要分割的数组
 * @param int $groupNum 分的组数
 */
public function splitArray($array, $groupNum){
    if(empty($array)) return array();    //数组的总长度
    $allLength = count($array);
    //个数
    $groupNum = intval($groupNum);
    //开始位置
    $start = 0;
    //分成的数组中元素的个数
    $enum = (int)($allLength/$groupNum);
    //结果集
    $result = array();
    if($enum > 0){

        //被分数组中 能整除 分成数组中元素个数 的部分
        $firstLength = $enum * $groupNum;
        $firstArray = array();
        for($i=0; $i<$firstLength; $i++){
            array_push($firstArray, $array[$i]);
            unset($array[$i]);
        }
        for($i=0; $i<$groupNum; $i++){
            //从原数组中的指定开始位置和长度 截取元素放到新的数组中
            $result[] = array_slice($firstArray, $start, $enum);
            //开始位置加上累加元素的个数
            $start += $enum;
        }
        //数组剩余部分分别加到结果集的前几项中
        $secondLength = $allLength - $firstLength;
        for($i=0; $i<$secondLength; $i++){
            array_push($result[$i], $array[$i + $firstLength]);
        }
    }else{
        for($i=0; $i<$allLength; $i++){
            $result[] = array_slice($array, $i, 1);
        }
    }
    return $result;
}
PHP 相关文章推荐
PHP自动选择 连接本地还是远程数据库
Dec 02 PHP
PHP实现变色验证码实例
Jan 06 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
May 10 PHP
PHP内置过滤器FILTER使用实例
Jun 25 PHP
PHP中加密解密函数与DES加密解密实例
Oct 17 PHP
php类自动加载器实现方法
Jul 28 PHP
php限制文件下载速度的代码
Oct 20 PHP
微信支付开发告警通知实例
Jul 12 PHP
PHP实现带重试功能的curl连接示例
Jul 28 PHP
轻松掌握php设计模式之访问者模式
Sep 23 PHP
thinkphp5实现无限级分类
Feb 18 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
Jan 23 PHP
php 判断字符串中是否包含html标签
Feb 17 #PHP
php 判断服务器操作系统的类型
Feb 17 #PHP
PHPMailer的主要功能特点和简单使用说明
Feb 17 #PHP
PHP创建桌面快捷方式的实例代码
Feb 17 #PHP
PHP json_decode函数详细解析
Feb 17 #PHP
php实现aes加密类分享
Feb 16 #PHP
实现获取http内容的php函数分享
Feb 16 #PHP
You might like
星际争霸任务指南——神族
2020/03/04 星际争霸
使用PHP计算两个路径的相对路径
2013/06/14 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
PHP 实现浏览记录并按日期分组
2017/05/11 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
2018/01/16 PHP
php写入文件不覆盖的实例讲解
2019/09/17 PHP
BOOM vs RR BO5 第二场 2.14
2021/03/10 DOTA
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
2011/12/26 Javascript
javascript动态加载三
2012/08/22 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
js实现键盘Enter键提交表单的方法
2015/05/27 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
JQuery核心函数是什么及使用方法介绍
2016/05/03 Javascript
需灵活掌握的Bootstrap预定义排版类 你精通吗?
2016/06/20 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
微信小程序遇到修改数据后页面不渲染的问题解决
2017/03/09 Javascript
Vue.2.0.5过渡效果使用技巧
2017/03/16 Javascript
angular2组件中定时刷新并清除定时器的实例讲解
2018/08/31 Javascript
[01:49]一目了然!DOTA2DotA快捷操作对比第二弹
2014/05/16 DOTA
[03:48]2014DOTA2 TI专访71DK夺冠不靠小组赛高排名
2014/07/11 DOTA
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
谈谈Python中的while循环语句
2019/03/10 Python
Python中format()格式输出全解
2019/04/12 Python
opencv python图像梯度实例详解
2020/02/04 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
Python3 assert断言实现原理解析
2020/03/02 Python
Html5 localStorage入门教程
2018/04/26 HTML / CSS
屈臣氏官方旗舰店:亚洲享负盛名的保健及美妆零售商
2019/03/15 全球购物
医科大学生毕业的自我评价分享
2013/11/12 职场文书
2014年征兵标语
2014/06/20 职场文书
实验室的标语
2014/06/20 职场文书
质量负责人岗位职责
2015/02/15 职场文书
导游词之北京明十三陵
2019/10/28 职场文书
Python中使用Lambda函数的5种用法
2021/04/01 Python