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