глюк с проверкой значений в масиве

Valeriy

Новичок
глюк с проверкой значений в масиве

Помогите разобраться. Вот скрипт. По моей задумке он должен формировать массив з уникальным значением. Тоесть на входе массив з разными значениями, на выходе массив з уникальными значениями без дублей. Но всеравно дубли проходят. Значения только строки( url), может вы увидите где ошыбка
PHP:
	foreach ($match[0] as $id => $vl)
 		{
 			$lnk = trim(strtolower($vl);
 			$in_present = false;
 			
 			if ($lnk != "#" && preg_match('/javascript:/', $lnk) == false && preg_match('/.xml/', $lnk) == false && $lnk != '')
 			{
 				//prepare url if need
				$local_url = trim($lnk);
				if (substr($local_url, 0, 7) != "http://")
				{
					if (substr($local_url, 0, 4) != 'www.')
					{
						$url='http://'.@$_SESSION['local_host'];
						if (substr($local_url, 0, 1) != '/')
						{
							$url.='/'.$local_url;
						}
						else
						{
							$url.=$local_url;
						}
					}
					else
					{
						$url='http://'.$local_url;
					}
				}
				else
				{
					$url=$local_url;
				}
				
				if (@$url != null)
				{
					$lnk = $url;
				}
				
				if (@$_SESSION['sort_lnk'] != null)
 				{
 					$in_present=in_array($lnk,$_SESSION['sort_lnk']);
 				}
 				if ($in_present == false)
 				{
 					$ttpl = $shablon['result_prs']['lnks'];
					$copy_host=preg_replace('/\//','\/',$_SESSION['host']);
					if ( preg_match('/'.$copy_host.'/',$lnk) == true )
					{
						$_SESSION['sort_lnk'][] = $lnk;
	 					//id
	 					$id_s = count($_SESSION['sort_lnk']) - 1;
	 					$ttpl = str_replace('{id}', $id_s, $ttpl);
	 					$ttpl = str_replace('{url}', $lnk, $ttpl);
	 					$ttl .= $ttpl;
	 					$result['new_lnk'] = @$result['new_lnk'] + 1;
	 					$_SESSION['lnk_kol'] = $id_s + 1;
					}
				
 			}
 				
			}
 		}
 

Valeriy

Новичок
что значит
Это вообще то парсер + завязан на ajax , плюс масив постоянно увеличивается и он не статический.

-~{}~ 15.07.08 15:50:

имено этот кусок кода должен добавить новые ссылки которых нет еще в массиве $_session, потом из них делается sitemap.xml

-~{}~ 15.07.08 15:55:

array_unique не подходит так как ключ цифровой должен быть по нарастающей, и он еще стоит как счетчик в js, и по нему идет еще выбор еле мента в getElementByid("cont" + i)
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
http://ru.wikipedia.org/wiki/Жесть_(значения)

-~{}~ 15.07.08 15:15:

[telepat_mode]
preg_match == false?
почему не просто !preg_match

Так-же как и по отношению к == true

[/telepat_mode]
 

Alexandre

PHPПенсионер
if (@$_SESSION['sort_lnk'] != null)
1) замени на isset($_SESSION['sort_lnk'])
использование сабак - это признак дурного запаха...
2) напиши оберточный класс,
3) разбей класс на приватные методы
4) длинна каждого метода должна быть не более 10-15 строк кода
 

Valeriy

Новичок
да, в массиве нет значений false
так же в документации сказано или true или false, про === несказанно, хотя пробовал эффект тотже пропускает.

-~{}~ 15.07.08 16:42:

!preg_match не чего не поменялось
 
Сверху