<?php
function divideEqualSum($in, $p = 2){
rsort($in, SORT_NUMERIC
); foreach ($in as $v){
usort($out, function($a, $b){ });
$out[0][] = $v;
}
return $out;
}
$arr = [1,4,5,9,1,2,2,3];
echo 'Две части', PHP_EOL;
echo 'Три части', PHP_EOL;
print_r( divideEqualSum
($arr, 3) ); echo 'Четыре части', PHP_EOL;
print_r( divideEqualSum
($arr, 4) );
PD9waHAKZnVuY3Rpb24gZGl2aWRlRXF1YWxTdW0oJGluLCAkcCA9IDIpewoJJG91dCA9IGFycmF5X2ZpbGwoMCwgJHAsIFtdKTsKCXJzb3J0KCRpbiwgU09SVF9OVU1FUklDKTsKCWZvcmVhY2ggKCRpbiBhcyAkdil7CgkJdXNvcnQoJG91dCwgZnVuY3Rpb24oJGEsICRiKXsKCQkJcmV0dXJuIGFycmF5X3N1bSgkYSkgPiBhcnJheV9zdW0oJGIpOwoJCX0pOwoJCSRvdXRbMF1bXSA9ICR2OwkJCgl9CglyZXR1cm4gJG91dDsKfQokYXJyID0gWzEsNCw1LDksMSwyLDIsM107CmVjaG8gJ9CU0LLQtSDRh9Cw0YHRgtC4JywgUEhQX0VPTDsKcHJpbnRfciggZGl2aWRlRXF1YWxTdW0oJGFycikgKTsKZWNobyAn0KLRgNC4INGH0LDRgdGC0LgnLCBQSFBfRU9MOwpwcmludF9yKCBkaXZpZGVFcXVhbFN1bSgkYXJyLCAzKSApOwplY2hvICfQp9C10YLRi9GA0LUg0YfQsNGB0YLQuCcsIFBIUF9FT0w7CnByaW50X3IoIGRpdmlkZUVxdWFsU3VtKCRhcnIsIDQpICk7