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

假设数组为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

posted @ 2024-01-18 10:32  你的男孩  阅读(104)  评论(0编辑  收藏  举报