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;
}