Я хотел бы спросить, как отсортировать / добавить параметр URI в точном порядке, чтобы избежать дублирования адресов с одинаковым запросом. Для уточнения я сортирую бренды товаров.
Пример:
https://www.example.me/page?b:0=foo&b:2=bar
Когда пользователь выберет другой параметр, он будет выглядеть так:
https://www.example.me/page?b:0=foo&b:2=bar&b:1=moe
Но Я хочу точно такую же позицию независимо от того, как пользователь выберет параметр, например:
https://www.example.me/page?b:0=foo&b:1=moe&b:2=bar
Сначала я собираю данные из mysql в массив, затем массив сортируется ksort (), но сортируется только значения в нем не то, как ссылки генерируются.
$actual_link = "https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$delim = (strpos($_SERVER['REQUEST_URI'], "?")) ? "&" : "?";
while ($line = mysqli_fetch_array($stmt)) {
$links[$x]['name'] = $line['brand_name'];
if (strpos($actual_link, "b:".$x."=".$line['brand_tag'])) {
// this param is checked and exists in URL
$new_actual_link = str_replace('&', '?', preg_replace('#[&?]b:'.$x.'=[^&]*#', null, $actual_link));
$links[$x]['checked'] = true;
$links[$x]['link'] = $new_actual_link;
}
else {
// this param is not chosen, not exists in URL
$links[$x]['link'] = $actual_link.$delim."b:".$x."=".$line['brand_tag'];
}
$x++;
}
ksort($links);
foreach ($links as $link) {...}