Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Как удалить дублирующие значения из массива? (php)
цитата
29/09/07 в 13:18
 Lamagro
Ситуация такая:
Есть массив урлов. Нужно сравнить домены этих урлов и если есть повторения - удалить один из них. То есть исключить повторения на доменном уровне.
Чего то в субботу вечером досямкать немогу icon_sad.gif

нид хелп
цитата
29/09/07 в 14:28
 webboxxx
не проверял, но алгоритм примерно такой:
$urls = array(....массив урлов...);
$domains = array(); // пустой массив
$uniqurls = array();
foreach($urls as $url)
{
$domain = getDomainFromUrl($url); // функцию сам напиши
if(!in_array($domains,$domain)) // тут проверь порядок аргументов, точно не помню
{
$domains[] = $domain;
$uniqurls[] = $url;
}
}
цитата
29/09/07 в 15:02
 Formator
Работает:

Код:

$urls=array("http://google.com/1.html","google.com/2.html","http://yahoo.com","yahoo.com/3.html");

foreach ($urls as $url)
{
list($domain,)=explode("/",strstr($url,"http://")?str_replace("http://","",$url):$url);
$domains[$domain]?null:$domains[$domain]=$url;
}

print_r($domains);
цитата
29/09/07 в 15:47
 Sterx
Код:
function strip_url_down($the_url) {
ereg("^http://w*\.*(.+)\\\?",$the_url,$regs);
$new = explode("/",$regs[1]);
$final_url = $new[0];
$levels = explode(".",$final_url);
if(sizeof($levels)==4) $final_url = $levels[1].".".$levels[2].".".$levels[3];
elseif(sizeof($levels)==3) $final_url = $levels[1].".".$levels[2];
elseif(sizeof($levels)==2) $final_url = $levels[0].".".$levels[1];
return $final_url;
}

достает доменное имя из пути
и array_unique
удаляет дублирующие значения из массива
то есть собираешь массив
array['full_url']="url";
и уникалишь
цитата
29/09/07 в 16:11
 Alexandur
зачем мучать реги?
http://www.php.net/function.parse-url
цитата
29/09/07 в 17:03
 Formator
Баговая функция. Только домен выдирает верно - по тому же принципу, что и я привёл, только учитывает знаки ? и #, если нет слеша после домена, ну и логин-пароль, если есть авторизация.
цитата
29/09/07 в 17:27
 Sterx
gimcnuk писал:
зачем мучать реги?
http://www.php.net/function.parse-url

у меня стоит на ВП плагин статистики, так эта функция багит раз в сутки где то, спотыкается
цитата
01/10/07 в 06:53
 Lamagro
всем биг сэнкс!
smail04.gif


Эта страница в полной версии