3v4l.org

run code in 300+ PHP versions simultaneously
<?php $data = <<<DATA Main{ NetworkAccess 1; MaxCPE 6; MaxClassifiers 20; GlobalPrivacyEnable 1; BaselinePrivacy{ AuthTimeout 10; ReAuthTimeout 10; AuthGraceTime 600; OperTimeout 10; ReKeyTimeout 10; TEKGraceTime 600; AuthRejectTimeout 60; SAMapWaitTimeout 1; SAMapMaxRetries 4; } UsServiceFlow{ UsServiceFlowRef 1; QosParamSetType 7; TrafficPriority 2; MaxRateSustained 1000000; SchedulingType 2; MaxTrafficBurst 8000; MaxConcatenatedBurst 8000; } DsServiceFlow{ DsServiceFlowRef 101; QosParamSetType 7; TrafficPriority 2; MaxRateSustained 10000000; } } DATA; function processItems($items, &$current, &$parent) { $item = trim(array_shift($items)); if ($item) { if (substr($item, -1) === '{') { $key = rtrim($item, '{'); $current[$key] = []; processItems($items, $current[$key], $parent); return; } if (trim($item) === '}') { processItems($items, $parent, $parent); return; } $parts = explode(' ', $item); $current[$parts[0]] = rtrim($parts[1], ';'); processItems($items, $current, $parent); } } $curr = []; processItems(explode("\n", $data), $curr, $curr); print_r($curr);

preferences:
24.04 ms | 409 KiB | 5 Q