3v4l.org

run code in 300+ PHP versions simultaneously
<?php $str = 'https://www.somehost.com/test/index.html?param1=4&param2=3&param3=2&param4=1&param5=3'; function parse($str) { // parse string to uri array $uri = parse_url($str); // parse query params to array parse_str($uri['query'], $params); // task1. filter params by 3 $params = array_filter($params, function($p) { return (int)$p !== 3; }); // task2. sort params asort($params); // task3. get url $params['url'] = $uri['path']; return $uri['scheme'] . '://' . $uri['host'] . '/?' . http_build_query($params); } echo parse($str);
Output for 5.6.0 - 5.6.26, 7.0.0 - 7.0.11, 7.1.0, 7.2.29 - 7.2.33, 7.3.16 - 7.3.33, 7.4.3 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.29, 8.2.0 - 8.2.21, 8.3.0 - 8.3.9
https://www.somehost.com/?param4=1&param3=2&param1=4&url=%2Ftest%2Findex.html

preferences:
171.31 ms | 404 KiB | 186 Q