3v4l.org

run code in 500+ PHP versions simultaneously
<?php $counts = [ "900,google.com", "60,mail.yahoo.com", "10,mobile.sports.yahoo.com", "40,sports.yahoo.com", "300,yahoo.com", "10,stackoverflow.com", "20,overflow.com", "5,com.com", "2,en.wikipedia.org", "1,m.wikipedia.org", "1,mobile.sports", "1,google.co.uk" ]; function calculateClicksByDomain($dataLines) { $output = []; foreach ($dataLines as $dataLine) { [$count, $domain] = explode(',', $dataLine); $nameParts = []; foreach (array_reverse(explode('.', $domain)) as $namePart) { array_unshift($nameParts, $namePart); $domain = implode('.', $nameParts); $output[$domain] = ($output[$domain] ?? 0) + $count; } } return $output; } print_r(calculateClicksByDomain($counts));

preferences:
79.09 ms | 909 KiB | 5 Q