3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array[] = array ( "weight" => "20" ); $array[] = array ( "weight" => "15" ); $array[] = array( "weight" =>"40" ); $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);
Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.29, 8.2.0 - 8.2.20, 8.3.0 - 8.3.8
array(2) { [0]=> array(2) { [0]=> string(2) "15" [1]=> string(2) "20" } [1]=> array(1) { [0]=> int(40) } }

preferences:
172.23 ms | 403 KiB | 214 Q