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 相关文章推荐
PHP5在Apache下的两种模式的安装
Sep 05 PHP
PHP COOKIE设置为浏览器进程
Jun 21 PHP
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
Jul 18 PHP
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
Aug 01 PHP
关于使用coreseek并为其做分页的介绍
Jun 21 PHP
PHP解析目录路径的3个函数总结
Nov 18 PHP
PHP计算指定日期所在周的开始和结束日期的方法
Mar 24 PHP
PHP数组操作――获取数组最后一个值的方法
Apr 14 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
Dec 22 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
Oct 28 PHP
在Laravel中实现使用AJAX动态刷新部分页面
Oct 15 PHP
php实现微信和支付宝支付的示例代码
Aug 11 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
用PHP实现的随机广告显示代码
2007/06/14 PHP
PHP关联链接常用代码
2012/11/05 PHP
php通过smtp邮件验证登陆的方法
2016/05/11 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
2017/03/13 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
JS小功能(列表页面隔行变色)简单实现
2013/11/28 Javascript
JQuery插件iScroll实现下拉刷新,滚动翻页特效
2014/06/22 Javascript
javascript实现根据时间段显示问候语的方法
2015/06/18 Javascript
jQuery中extend函数详解
2015/07/13 Javascript
JS实现自动定时切换的简洁网页选项卡效果
2015/10/13 Javascript
TypeScript Type Innference(类型判断)
2016/03/10 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
2017/01/05 Javascript
详解Vue改变数组中对象的属性不重新渲染View的解决方案
2018/09/21 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
koa大型web项目中使用路由装饰器的方法示例
2019/04/02 Javascript
js作用域和作用域链及预解析
2019/04/11 Javascript
详解Vue、element-ui、axios实现省市区三级联动
2019/05/07 Javascript
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
layui多iframe页面控制定时器运行的方法
2019/09/05 Javascript
[01:32]DOTA2 2015国际邀请赛中国区预选赛第四日战报
2015/05/29 DOTA
[52:29]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第三局
2016/03/03 DOTA
python翻译软件实现代码(使用google api完成)
2013/11/26 Python
在python中的socket模块使用代理实例
2014/05/29 Python
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
python 实现快速生成连续、随机字母列表
2019/11/28 Python
python3:excel操作之读取数据并返回字典 + 写入的案例
2020/09/01 Python
CSS3中background-clip和background-origin的区别示例介绍
2014/03/10 HTML / CSS
德国奢侈品网上商城:Mytheresa
2016/08/24 全球购物
个人简历自我鉴定
2013/10/11 职场文书
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
成品仓管员岗位职责
2013/12/11 职场文书
表彰大会主持词
2014/03/26 职场文书
个人作风建设心得体会
2014/10/22 职场文书