$ url = parse_url ('https://auto.yandex.ru/offers?sort_offers=relevance-desc&mark=audi&mark=toyota&mark=bmw');
if (preg_match_all ("/ (? P [\ w \ - \ _] +) = (? P [^ = &] +) / isu", $ url ['query'], $ matches, PREG_SET_ORDER)) {
$ url ['query'] = [];
foreach ($ matches as $ item) {
$ item ['value'] = urldecode ($ item ['value']);
if (! isset ($ url ['query'] [$ item ['key']])) {
$ url ['query'] [$ item ['key']] = $ item ['value'];
continue;
}
if (! is_array ($ url ['query'] [$ item ['key']])) {
$ url ['query'] [$ item ['key']] = [$ url ['query'] [$ item ['key']], $ item ['value']];
} else {
$ url ['query'] [$ item ['key']] [] = $ item ['value'];
}
}
}
var_dump ($ url);
/ **
array (4) {
["scheme"] =>
string (5) "https"
["host"] =>
string (14) "auto.yandex.ru"
["path"] =>
string (7) "/ offers"
["query"] =>
array (2) {
["sort_offers"] =>
string (14) "relevance-desc"
["mark"] =>
array (3) {
[0] =>
string (4) "audi"
[1] =>
string (6) "toyota"
[2] =>
string (3) "bmw"
}
}
}
** /