/*
* 数组按照指定数值随机平均分配
* array$array = [1,2,3,4,5,6,7];
* int $parts = 3;
* 输出
array(3) {
[0] => array(3) {
[0] => int(5)
[1] => int(1)
[2] => int(6)
}
[1] => array(2) {
[0] => int(7)
[1] => int(3)
}
[2] => array(2) {
[0] => int(2)
[1] => int(4)
}
}
* */
public function fill_chunck($array, $parts) {
shuffle($array);
$cc = count($array);
if ($parts>$cc){
$result = array_chunk($array,1);
return $result;
}
$res = (int)bcmod($cc, $parts);
if ($res == 0){
return array_chunk($array,$parts);
}
$po_arr =[];
for ($i=1;$i<=$res;$i++){
$po_arr[]=$array[$i];
}
$new_array =[];
foreach ($array as $k=>$v){
if (in_array($v,$po_arr)){
continue;
}
$new_array[]=$v;
}
$max = floor($cc / $parts);
$res = array_chunk($new_array,$max);
foreach ($po_arr as $k=>$v){
$res[$k][count($res[$k])] =$v;
}
return $res;
}
php一维数组按照指定数值随机平均分配
于 2023-01-16 15:06:59 首次发布