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添加MySQL数据记录代码
Jun 07 PHP
测试php连接mysql是否成功的代码分享
Jan 24 PHP
php使用glob函数快速查询指定目录文件的方法
Nov 15 PHP
PHP调用MySQL存储过程并返回值的方法
Dec 26 PHP
PHP数组编码gbk与utf8互相转换的两种方法
Sep 01 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
Dec 12 PHP
php实现留言板功能
Mar 05 PHP
PHP实现获取第一个中文首字母并进行排序的方法
May 09 PHP
PHP标准库(PHP SPL)详解
Mar 16 PHP
Laravel 类和接口注入相关的代码
Oct 15 PHP
gearman中任务的优先级和返回状态实例分析
Feb 27 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
Sep 17 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编写的SVN类
2013/07/18 PHP
PHP+shell实现多线程的方法
2015/07/01 PHP
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
2010/01/15 Javascript
简介JavaScript中Math.cos()余弦方法的使用
2015/06/15 Javascript
javascript日期格式化方法小结
2015/12/17 Javascript
用js读写cookie的简单方法(推荐)
2016/08/08 Javascript
总结javascript中的六种迭代器
2016/08/16 Javascript
ExtJS 4.2 Grid组件单元格合并的方法
2016/10/12 Javascript
NodeJs的fs读写删除移动监听
2017/04/28 NodeJs
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
2017/12/06 Javascript
vue 强制组件重新渲染(重置)的两种方案
2019/10/29 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
[04:09]显微镜下的DOTA2第十二期—NaVi美如画的团战
2014/06/23 DOTA
[19:59]2014DOTA2国际邀请赛 IG战队纪录片
2014/08/07 DOTA
Python 备份程序代码实现
2017/03/06 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
Python中Numpy包的安装与使用方法简明教程
2018/07/03 Python
python版大富翁源代码分享
2018/11/19 Python
python 协程 gevent原理与用法分析
2019/11/22 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
澳大利亚领先的运动鞋商店:Hype DC
2018/03/31 全球购物
经理秘书岗位职责
2013/11/14 职场文书
护士进修自我鉴定
2014/02/07 职场文书
找工作求职信
2014/07/07 职场文书
交通安全责任书范本
2014/07/24 职场文书
工作经历证明书范文
2014/11/02 职场文书
2015年幼儿园德育工作总结
2015/05/25 职场文书
高二语文教学反思
2016/02/16 职场文书
HTML基础详解(下)
2021/10/16 HTML / CSS
python获取字符串中的email
2022/03/31 Python
Nginx 常用配置
2022/05/15 Servers
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server