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

 这篇文章主要介绍了php实现把数组按指定的个数分隔。需要的朋友可以过来参考下,希望对大家有所帮助

代码如下:
/**
 * 
 * 把数组按指定的个数分隔
 * @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;
}
 
 

时间: 2024-09-28 18:26:02

php实现把数组按指定的个数分隔的相关文章

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

复制代码 代码如下: /** *  * 把数组按指定的个数分隔 * @param array $array 要分割的数组 * @param int $groupNum 分的组数 */public function splitArray($array, $groupNum){    if(empty($array)) return array();     //数组的总长度    $allLength = count($array);     //个数    $groupNum = intval(

PHP将MYSQL内容读到二维数组并按指定列输出

PHP将MYSQL内容读到二维数组并按指定列输出 <? $host = "localhost";   //主机名 $user = "root";        //mysql用户名 $password = "";    //mysql密码 $database = "doc";  //mysql数据库名 $tables = "mclass";  //表名 $conn=mysql_connect(&quo

c语言-C语言数组删除指定数值问题....

问题描述 C语言数组删除指定数值问题.... int b; int a[5] = { 1, 2, 3, 4, 5 }; scanf_s("%d",&b); int r = 0; int i; for ( i = 0; i<5; i++){ if (b == a[i]){//要删除的数据 a[i] = r; } else{ printf("%dn",a[i]); } }//这样的话确实能删除一个数,但是如果我真的想把数值0肤赋值给数组中的元素呢?怎么办?

c-请教一个删除数组中指定下标元素的问题

问题描述 请教一个删除数组中指定下标元素的问题 std::string ss="sdfsefsf"; ss[3]=null; 如果这样的话第四个数就会变成一个空格,我想请教一下怎么样才能让第四个数 直接消失,不要用任何东西替换. 解决方案 你这样本来就是把第四个元素替换成空格,删除元素用erase,例如删除第四个 ss.erase(ss.begin()+3); 解决方案二: ss[3] = ''; 解决方案三: vc不知道,但java中js有个方法 array.splice(index

php实现数组按指定KEY排序的方法

 这篇文章主要介绍了php实现数组按指定KEY排序的方法,涉及php操作数组排序的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php实现数组按指定KEY排序的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 function array_sort($arr,$keys,$orderby='asc'){ $keysvalue = $new_array = array(); foreach (

任意元素和-求一个数组中选出任意个数元素相加之和,求大神指教

问题描述 求一个数组中选出任意个数元素相加之和,求大神指教 求一个数组中选出任意个数元素相加之和,求大神指教 比如打印出arry[8]中,任意两个数相加的和,任意三个数相加的和,直到任意八个数相加的和. 求大神指教. 解决方案 不知道你用的什么语言 如果C#,参考我写的http://bbs.csdn.net/topics/390550326 这个问题其实就是求M选N,其中M=8,N循环1-8 然后得到每个组合再求和. 解决方案二: 不知道你使用的是什么语言,不过思路是这样的,你的要求是不是随机数

link如何将数组放大指定的倍数(可能不是整数),而且要使得数组实现随机化,谢谢

问题描述 link如何将数组放大指定的倍数(可能不是整数),而且要使得数组实现随机化,谢谢 link如何将数组放大指定的倍数(可能不是整数),而且要使得数组实现随机化,谢谢 解决方案 按照我上一个问题的回答,先用concat连接自身足够长,再take

javascript-js判断一个数组不包含一个数

问题描述 js判断一个数组不包含一个数 比如一个数组[1234] 变量a从1循环到5,怎么把5这个数取出来 解决方案 Array.prototype.mycontains = function(e) { for(i=0;i<this.length;i++) { if(this[i] == e) return true; } return false; } 然后这么用for (var i = 0; i <= 5; i++)if (!arr.mycontains(i)) alert(i); 解决方

c语言-C中对排序好了后的数组中插入一个数在输出

问题描述 C中对排序好了后的数组中插入一个数在输出 用冒泡排序法对输入的20个数进行降序排序存入数组中,然后在输入一个数插入到该数组,要求保持原序不变输出该数组的21个数! 解决方案 int main(void) { int i,j,array[20],temp; printf("Input 20 integer:"); /*输入20个整数*/ for(i=0;i<20;i++) scanf("%d",&array[i]); printf("