3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ (object) ['id'=> 1, 'value' => 0], (object) ['id'=> 2, 'value' => 10], (object) ['id'=> 3, 'value' => 14], (object) ['id'=> 4, 'value' => 0], (object) ['id'=> 5, 'value' => 21], (object) ['id'=> 6, 'value' => 44], ]; $result = []; foreach ($array as $obj) { if (!$obj->value) { unset($ref); $obj->values = []; $ref = &$obj->values; $result[] = $obj; continue; } $ref[] = $obj; } var_export($result);

preferences:
26.39 ms | 404 KiB | 5 Q