Реклама на сайте Advertise with us

Как удалить дублирующие значения из массива? (php)

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

SexBlogs.Name

С нами с 13.10.03
Сообщения: 3159
Рейтинг: 962

Ссылка на сообщениеДобавлено: 29/09/07 в 13:18       Ответить с цитатойцитата 

Ситуация такая:
Есть массив урлов. Нужно сравнить домены этих урлов и если есть повторения - удалить один из них. То есть исключить повторения на доменном уровне.
Чего то в субботу вечером досямкать немогу icon_sad.gif

нид хелп

Submit your blog to the sex blogs list. PR=3 Quickly approve! 10 posts min. Ping every 6 hour!

0
 



С нами с 06.03.03
Сообщения: 1650
Рейтинг: 1096

Ссылка на сообщениеДобавлено: 29/09/07 в 14:28       Ответить с цитатойцитата 

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

6
 



С нами с 03.05.07
Сообщения: 801
Рейтинг: 825

Ссылка на сообщениеДобавлено: 29/09/07 в 15:02       Ответить с цитатойцитата 

Работает:

Код:

$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);

создай свою партнёрку

6
 

programmer

С нами с 08.12.02
Сообщения: 7615
Рейтинг: 5760

Ссылка на сообщениеДобавлено: 29/09/07 в 15:47       Ответить с цитатойцитата 

Код:
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";
и уникалишь

крипта на ByBit

6
 



С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970

Ссылка на сообщениеДобавлено: 29/09/07 в 16:11       Ответить с цитатойцитата 

зачем мучать реги?
http://www.php.net/function.parse-url

6
 



С нами с 03.05.07
Сообщения: 801
Рейтинг: 825

Ссылка на сообщениеДобавлено: 29/09/07 в 17:03       Ответить с цитатойцитата 

Баговая функция. Только домен выдирает верно - по тому же принципу, что и я привёл, только учитывает знаки ? и #, если нет слеша после домена, ну и логин-пароль, если есть авторизация.

создай свою партнёрку

6
 

programmer

С нами с 08.12.02
Сообщения: 7615
Рейтинг: 5760

Ссылка на сообщениеДобавлено: 29/09/07 в 17:27       Ответить с цитатойцитата 

gimcnuk писал:
зачем мучать реги?
http://www.php.net/function.parse-url

у меня стоит на ВП плагин статистики, так эта функция багит раз в сутки где то, спотыкается

крипта на ByBit

6
 

SexBlogs.Name

С нами с 13.10.03
Сообщения: 3159
Рейтинг: 962

Ссылка на сообщениеДобавлено: 01/10/07 в 06:53       Ответить с цитатойцитата 

всем биг сэнкс!
smail04.gif

Submit your blog to the sex blogs list. PR=3 Quickly approve! 10 posts min. Ping every 6 hour!

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »