首页 > 编程语言 >PHP把数组按指定的个数分隔

PHP把数组按指定的个数分隔

时间:2024-01-18 10:33:35浏览次数:41  
标签:分隔 int 个数 groupNum result 数组 array PHP yu

假设数组为array(‘1’,‘2’,‘3’,‘4’,‘5’,‘6’); 想把它分割成四个,那么结果为
array(
  ‘0’ => [‘1’,‘2’],
  ‘1’ => [‘3’,‘4’],
  ‘2’ => [‘5’],
  ‘3’ => [‘6’],
);

/**
 * 
 * 把数组按指定的个数分隔
 * @param array $array 要分割的数组
 * @param int $groupNum 分的组数
 */
function splitArray($array, $groupNum){
    if(empty($array)) return array();
    //数组的总长度
    $allLength = count($array);
    //个数
    $groupNum = intval($groupNum);
    //取余
    $yu = (int)($allLength%$groupNum);
    //取整
    $zheng = (int)(($allLength-$yu)/$groupNum);
    //结果集
    $result = array();
    //算出小数组可以有几个元素
    $s = array();
    if($yu > 0){
        for ($i=0; $i <$groupNum; $i++) {            
            $s[$i] = $zheng;
            if($yu>=1){
               $s[$i] = $s[$i]+1;
            }
            $yu = $yu-1;         
        }
    }else{       
        return array_chunk($array, $zheng);       
    }
    foreach ($s as $k => $v) {
      for ($i=0; $i < $v; $i++) { 
        $result[$k][] = array_shift($array); 
      }
    }
    return $result;
}

 

 

 

 

 

 

 

 

 

 

 

 

 

参考:https://www.cnblogs.com/bluealine/p/11666636.html

标签:分隔,int,个数,groupNum,result,数组,array,PHP,yu
From: https://www.cnblogs.com/wxy0126/p/17971980

相关文章

  • PHP LFI/RFI Vulnerability attack bypassing remote URL inclusion restriction
    FileInclusionvulnerabilityInthePHPConfiguration,"allow_url_include" wrapperby-defaultsetto"Off"whichinstructPHPnototloadremoteHTTPorFTPurls.HencepreventRemoteFileInclusionattack.ButPHPdoesnotblockSMBURL......
  • thinkphp 操作mysql数据库
    获取当前路由信息useapp\BaseController;//引入控制器publicfunctionindex(){//返回当前实际路径return$this->app->getAppPath();//返回当前方法名//return$this->request->action();}载入的控制器不存在......
  • E - Ring MST(n个数裴蜀定理)
    E-RingMST有i种操作,第i种操作为选择一个数x,然后在x和(x+a[i])%N之间连边,代价为c[i],问是否能够让图联通,如果可以最小生成树的边权和是多少。首先按照克鲁斯卡尔算法,我们肯定是按照边权从小到大连。考虑前i种操作都操作完后的连通块个数。若u,v在同一联通块,则\(u\equivv+a......
  • 22. 从零用Rust编写正反向代理,一个数据包的神奇HTTP历险记!
    wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmproxy数......
  • Java Collections.frequency()方法返回集合中指定元素个数
    JavaCollections.frequency()方法具有什么功能呢?下文笔者讲述Collections.frequency()方法的功能简介说明,如下所示:Collections.frequency()方法的功能:返回一个int值,其值给指定对象在集合中出现的次数Collections.frequency()方法的语法publicstaticintfreque......
  • 开启php8的JIT 才能提现php8的速度
    找到php版本文件夹下面的php.ini文件,开启如下字段:zend_extension=opcache修改如下字段:[opcache];DeterminesifZendOPCacheisenabledopcache.enable=1;DeterminesifZendOPCacheisenabledfortheCLIversionofPHPopcache.enable_cli=0;TheOPcache......
  • 将一个数组中的元素头尾两端对调
    #include<stdio.h>voidinplace_swap(int*x,int*y){printf("--------------\n");printf("x=%d,y=%d\n",*x,*y);*y=*x^*y;printf("x=%d,y=%d\n",*x,*y);*x=*x^*y;printf(&......
  • thinkphp5详细使用阿里云短信最新版
    1.我们下载官方完整包,PHP版本 https://help.aliyun.com/document_detail/55359.html?spm=5176.doc55451.6.580.3rgXTq 解压后得到目录2.将目录里的api_sdk复制出来到tp5根目录的extend下面文件夹复制过去后,我们最好更改一下名称,比如我们更改为alisms。 3.使用方法直接......
  • php生成图片二维码
    使用php类库PHPQRCode地址:http://phpqrcode.sourceforge.net/下载:http://sourceforge.net/projects/phpqrcode/下载官网提供的类库后,只需要使用phpqrcode.php就可以生成二维码了,当然您的PHP环境必须开启支持GD2。phpqrcode.php提供了一个关键的png()方法,其中参数$frame表示......
  • PHP开发API接口签名生成及验证
    开发过程中,我们经常会与接口打交道,有的时候是调取别人网站的接口,有的时候是为他人提供自己网站的接口,但是在这调取的过程中都离不开签名验证。我们在设计签名验证的时候,请注意要满足以下几点:可变性:每次的签名必须是不一样的。时效性:每次请求的时效,过期作废等。唯一性:每次的签......