3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array=[ (object)['latitude'=>32.7308117,'longitude'=>-117.1492819,'id'=>'Museum1','h'=>2], (object)['latitude'=>32.7352917,'longitude'=>-117.1491861,'id'=>'Zoo','h'=>6], (object)['latitude'=>32.72098,'longitude'=>-117.1739938,'id'=>'Maritime Museum','h'=>2], (object)['latitude'=>32.7631797,'longitude'=>-117.2276874,'id'=>'Seaworld','h'=>6], (object)['latitude'=>32.8645458,'longitude'=>-117.2517528,'id'=>'Birch','h'=>3], (object)['latitude'=>32.7700125,'longitude'=>-117.2532622,'id'=>'Belmont','h'=>4], (object)['latitude'=>32.6558527,'longitude'=>-117.1563085,'id'=>'Aquatica','h'=>4], (object)['latitude'=>32.6894411,'longitude'=>-117.1829472,'id'=>'Coronado','h'=>2], (object)['latitude'=>32.7803722,'longitude'=>-117.0442201,'id'=>'Lake Murray','h'=>2], (object)['latitude'=>33.0051734,'longitude'=>-117.016139,'id'=>'Poway Lake','h'=>2] ]; $tally=0; // init the $tally for arithmetic+assignment operator foreach($array as $row){ if(($tally+=$row->h)>10){ // assign&increase $tally and check new $tally $result[]=$group; // store the previously grouped rows $group=[$row]; // store current row as first element of new group $tally=$row->h; // reset $tally to current row's h value }else{ $group[]=$row; } } $result[]=$group; var_export($result);
Output for 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 ( 0 => array ( 0 => (object) array( 'latitude' => 32.7308117, 'longitude' => -117.1492819, 'id' => 'Museum1', 'h' => 2, ), 1 => (object) array( 'latitude' => 32.7352917, 'longitude' => -117.1491861, 'id' => 'Zoo', 'h' => 6, ), 2 => (object) array( 'latitude' => 32.72098, 'longitude' => -117.1739938, 'id' => 'Maritime Museum', 'h' => 2, ), ), 1 => array ( 0 => (object) array( 'latitude' => 32.7631797, 'longitude' => -117.2276874, 'id' => 'Seaworld', 'h' => 6, ), 1 => (object) array( 'latitude' => 32.8645458, 'longitude' => -117.2517528, 'id' => 'Birch', 'h' => 3, ), ), 2 => array ( 0 => (object) array( 'latitude' => 32.7700125, 'longitude' => -117.2532622, 'id' => 'Belmont', 'h' => 4, ), 1 => (object) array( 'latitude' => 32.6558527, 'longitude' => -117.1563085, 'id' => 'Aquatica', 'h' => 4, ), 2 => (object) array( 'latitude' => 32.6894411, 'longitude' => -117.1829472, 'id' => 'Coronado', 'h' => 2, ), ), 3 => array ( 0 => (object) array( 'latitude' => 32.7803722, 'longitude' => -117.0442201, 'id' => 'Lake Murray', 'h' => 2, ), 1 => (object) array( 'latitude' => 33.0051734, 'longitude' => -117.016139, 'id' => 'Poway Lake', 'h' => 2, ), ), )
Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.33
array ( 0 => array ( 0 => stdClass::__set_state(array( 'latitude' => 32.7308117, 'longitude' => -117.1492819, 'id' => 'Museum1', 'h' => 2, )), 1 => stdClass::__set_state(array( 'latitude' => 32.7352917, 'longitude' => -117.1491861, 'id' => 'Zoo', 'h' => 6, )), 2 => stdClass::__set_state(array( 'latitude' => 32.72098, 'longitude' => -117.1739938, 'id' => 'Maritime Museum', 'h' => 2, )), ), 1 => array ( 0 => stdClass::__set_state(array( 'latitude' => 32.7631797, 'longitude' => -117.2276874, 'id' => 'Seaworld', 'h' => 6, )), 1 => stdClass::__set_state(array( 'latitude' => 32.8645458, 'longitude' => -117.2517528, 'id' => 'Birch', 'h' => 3, )), ), 2 => array ( 0 => stdClass::__set_state(array( 'latitude' => 32.7700125, 'longitude' => -117.2532622, 'id' => 'Belmont', 'h' => 4, )), 1 => stdClass::__set_state(array( 'latitude' => 32.6558527, 'longitude' => -117.1563085, 'id' => 'Aquatica', 'h' => 4, )), 2 => stdClass::__set_state(array( 'latitude' => 32.6894411, 'longitude' => -117.1829472, 'id' => 'Coronado', 'h' => 2, )), ), 3 => array ( 0 => stdClass::__set_state(array( 'latitude' => 32.7803722, 'longitude' => -117.0442201, 'id' => 'Lake Murray', 'h' => 2, )), 1 => stdClass::__set_state(array( 'latitude' => 33.0051734, 'longitude' => -117.016139, 'id' => 'Poway Lake', 'h' => 2, )), ), )
Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33
array ( 0 => array ( 0 => stdClass::__set_state(array( 'latitude' => 32.730811699999997, 'longitude' => -117.14928190000001, 'id' => 'Museum1', 'h' => 2, )), 1 => stdClass::__set_state(array( 'latitude' => 32.735291699999998, 'longitude' => -117.14918609999999, 'id' => 'Zoo', 'h' => 6, )), 2 => stdClass::__set_state(array( 'latitude' => 32.720979999999997, 'longitude' => -117.17399380000001, 'id' => 'Maritime Museum', 'h' => 2, )), ), 1 => array ( 0 => stdClass::__set_state(array( 'latitude' => 32.763179700000002, 'longitude' => -117.22768739999999, 'id' => 'Seaworld', 'h' => 6, )), 1 => stdClass::__set_state(array( 'latitude' => 32.864545800000002, 'longitude' => -117.25175280000001, 'id' => 'Birch', 'h' => 3, )), ), 2 => array ( 0 => stdClass::__set_state(array( 'latitude' => 32.7700125, 'longitude' => -117.25326219999999, 'id' => 'Belmont', 'h' => 4, )), 1 => stdClass::__set_state(array( 'latitude' => 32.655852699999997, 'longitude' => -117.15630849999999, 'id' => 'Aquatica', 'h' => 4, )), 2 => stdClass::__set_state(array( 'latitude' => 32.689441100000003, 'longitude' => -117.1829472, 'id' => 'Coronado', 'h' => 2, )), ), 3 => array ( 0 => stdClass::__set_state(array( 'latitude' => 32.780372200000002, 'longitude' => -117.0442201, 'id' => 'Lake Murray', 'h' => 2, )), 1 => stdClass::__set_state(array( 'latitude' => 33.005173399999997, 'longitude' => -117.016139, 'id' => 'Poway Lake', 'h' => 2, )), ), )

preferences:
273.14 ms | 406 KiB | 296 Q