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

假设数组为array(‘1’,‘2’,‘3’,‘4’,‘5’,‘6’); 想把它分割成四个,那么结果为
array(
‘0’ => [‘1’,‘2’],
‘1’ => [‘3’,‘4’],
‘2’ => [‘5’],
‘3’ => [‘6’],
);
https://blog.csdn.net/justflyhigh/article/details/7708145
部分内容借鉴以上文章,实现的结果不一样,如果我的函数功能不是你想要的,可以去以上文章看一下。

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

 

posted on 2019-10-13 15:10  夏沫忆香  阅读(1133)  评论(0编辑  收藏  举报