3v4l.org

run code in 500+ PHP versions simultaneously
<?php Class Unit{ public function __construct(public readonly ?string $name){} } Class Branch{ public array $units = []; public function __construct(public readonly ?string $name){} } Class Group{ public array $branches = []; public function __construct(public readonly string $name){} } $sampleData = [ ['g1', 'b1', null], ['g1', 'b1', 'u2'], ['g2', null, 'u3'], ['g2', 'b6', 'u4'], ['g3', 'b7', 'u5'], ]; $groups = []; foreach($sampleData as $row){ $groupId = $row[0]; $branchId = $row[1]; $unitId = $row[2]; if(!isset($groups[$groupId])){ $groups[$groupId] = new Group($groupId); } if(!isset($groups[$groupId]->branches[$branchId])){ $groups[$groupId]->branches[$branchId] = new Branch($branchId); } if(!isset($groups[$groupId]->branches[$branchId]->units[$unitId])){ $groups[$groupId]->branches[$branchId]->units[$unitId] = new Unit($unitId); } } var_dump($groups);

preferences:
65.67 ms | 829 KiB | 5 Q