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树的代码,可以嵌套任意层
Oct 09 PHP
PHP 实用代码收集
Jan 22 PHP
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
Feb 08 PHP
按上下级层次关系输出内容的PHP代码
Jul 17 PHP
php设计模式 Observer(观察者模式)
Jun 26 PHP
PHP中把对象转换为关联数组代码分享
Apr 09 PHP
php 无限级分类 获取顶级分类ID
Mar 13 PHP
PHP中的Trait 特性及作用
Apr 03 PHP
PHP与SQL语句常用大全
Dec 10 PHP
老生常谈PHP中的数据结构:DS扩展
Jul 17 PHP
PHP中ltrim()函数的用法与实例讲解
Mar 28 PHP
PHP如何获取Cookie并实现模拟登录
Jul 16 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下使用iconv需要注意的问题
2010/11/20 PHP
php设计模式之单例、多例设计模式的应用分析
2013/06/30 PHP
DLL+ ActiveX控件+WEB页面调用例子
2010/08/07 Javascript
关于JS中prototype的理解
2015/09/07 Javascript
jQuery隐藏和显示效果实现
2016/04/06 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
JS+CSS3模拟溢出滚动效果
2016/08/12 Javascript
JS继承之借用构造函数继承和组合继承
2016/09/07 Javascript
实例浅析js的this
2016/12/11 Javascript
自动适应iframe右边的高度
2016/12/22 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
2017/01/17 Javascript
使用nodejs爬取前程无忧前端技能排行
2017/05/06 NodeJs
JS数组去重的6种方法完整实例
2018/12/08 Javascript
js实现随机抽奖
2020/03/19 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
vue 判断页面是首次进入还是再次刷新的实例
2020/11/05 Javascript
python复制文件代码实现
2013/12/23 Python
wxPython中文教程入门实例
2014/06/09 Python
利用Python批量提取Win10锁屏壁纸实战教程
2018/03/27 Python
python实现超市扫码仪计费
2018/05/30 Python
Tornado Web Server框架编写简易Python服务器
2018/07/28 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
django模板结构优化的方法
2019/02/28 Python
python如何爬取动态网站
2020/09/09 Python
css3之UI元素状态伪类选择器实例演示
2017/08/11 HTML / CSS
面包店的创业计划书范文
2014/01/16 职场文书
运动会入场解说词300字
2014/01/25 职场文书
法律进企业活动方案
2014/03/04 职场文书
环卫工人先进事迹材料
2014/06/02 职场文书
本科生求职信
2014/06/17 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
开会通知
2015/04/20 职场文书
学习经验交流会策划书
2015/11/02 职场文书
2016思想纪律作风整顿心得体会
2016/01/23 职场文书
漫画「处刑少女的生存之道」第3卷封面公开
2022/03/21 日漫
20180830晚上第一届KSL半决赛 雨神vs解冻(二龙 三炮解说)
2022/04/01 星际争霸