fork download
  1. <?php
  2.  
  3. $num_arr=array(1,3,6,5,4,2,7,9,5,3,6,2,4,7);
  4.  
  5. $result = array_reduce($num_arr, function($result, $curr) {
  6. if (!count($result)) {
  7. $result[] = array();
  8. }
  9. $last =& $result[count($result) - 1];
  10.  
  11. if (array_sum($last) + $curr > 10) {
  12. $result[] = array($curr);
  13. } else {
  14. $last[] = $curr;
  15. }
  16.  
  17. return $result;
  18. }, array());
  19.  
  20. var_dump($result);
Success #stdin #stdout 0.01s 20520KB
stdin
Standard input is empty
stdout
array(8) {
  [0]=>
  array(3) {
    [0]=>
    int(1)
    [1]=>
    int(3)
    [2]=>
    int(6)
  }
  [1]=>
  array(2) {
    [0]=>
    int(5)
    [1]=>
    int(4)
  }
  [2]=>
  array(2) {
    [0]=>
    int(2)
    [1]=>
    int(7)
  }
  [3]=>
  array(1) {
    [0]=>
    int(9)
  }
  [4]=>
  array(2) {
    [0]=>
    int(5)
    [1]=>
    int(3)
  }
  [5]=>
  array(2) {
    [0]=>
    int(6)
    [1]=>
    int(2)
  }
  [6]=>
  array(1) {
    [0]=>
    int(4)
  }
  [7]=>
  array(1) {
    [0]=>
    int(7)
  }
}