3v4l.org

run code in 300+ PHP versions simultaneously
<?php $input = "0&39avfy;&39avfy;task&39avfy;rose&39avfy;duration&39avfy;1.25&39avfy;user&39avfy;15&39avfy;1&39avfy;&39avfy;task&39avfy;daisy&39avfy;duration&39avfy;0.75&39avfy;user&39avfy;25&39avfy;2&39avfy;&39avfy;task&39avfy;orchid&39avfy;duration&39avfy;1.15&39avfy;user&39avfy;7"; $result = []; $regex = <<<REGEX / (\d+)&39avfy; |\G(?!^)&39avfy;([^&]+)&39avfy;([^&]+) /x REGEX; preg_match_all($regex, $input, $m, PREG_SET_ORDER); foreach ($m as $set) { if (strlen($set[1])) { $index = $set[1]; } else { $result[$index][$set[2]] = $set[3]; } } var_export($result);

preferences:
40.87 ms | 1016 KiB | 5 Q