3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array[] = array ( "weight" => "20" ); $array[] = array ( "weight" => "15" ); $array[] = array( "weight" =>"40" ); $array[] = array( "weight" =>"15" ); $array[] = array( "weight" =>"17" ); $array[] = array( "weight" =>"49" ); $array[] = array( "weight" =>"55" ); $arr = array_column($array, "weight"); sort($arr); $i= 0; $new[0]= []; foreach($arr as $val){ if(array_sum($new[$i]) + $val <50){ $new[$i][] = $val; }else{ $i++; $new[$i][] = (int) $val; } } var_dump($new);

preferences:
27.45 ms | 405 KiB | 5 Q