проблема с сортировкой массива

H
На сайте с 21.12.2007
Offline
24
626
$html = file_get_contents($string);
preg_match_all('/([a-zA-Z]+)/', $html, $result);

$result = array_unique($result[1]);
sort($result[1]);
for ($i=0; $i<count($result[1]); $i++)
{
if (strlen($result[1][$i]) > 2) $text = $text.$result[1][$i]."\n";
}

строка выделенная красным не работает (из-за неё весь скрипт не пашет)

что исправить ? чтобы в массиве убирались повторяющиеся элементы ?

Bor-ka
На сайте с 16.11.2004
Offline
256
#1

hrenoid,

делаем var_dump($result[1]);

и показываем результат.

H
На сайте с 21.12.2007
Offline
24
#2

мне надо просто убрать лишнее из массива (применительно к моему коду)

то что возвращает var_dump мне не надо

Bor-ka
На сайте с 16.11.2004
Offline
256
#3

hrenoid,

ну раз надо - делайте 😂

dkameleon
На сайте с 09.12.2005
Offline
386
#4
hrenoid:
то что возвращает var_dump мне не надо

вас просят показать содержимое массива, а не спрашивают о потребностях. в конце концов это же вам нужна помощь.

кроме того, почему дальше опять к первому элементу обращаетесь, а не со всем массивом работаете?

sort($result[1]);

Дизайн интерьера (http://balabukha.com/)
H
На сайте с 21.12.2007
Offline
24
#5
кроме того, почему дальше опять к первому элементу обращаетесь, а не со всем массивом работаете? sort($result[1]);

эта запись правильная (обращение к первому элементу $result[1][0])

вообще код работает как надо, просто дубликаты не получается удалить (строка выделенная красным не работает)

var_dump

array(25) { [0]=> string(8) "security" [1]=> string(7) "officer" [2]=> string(4) "jobs" [3]=> string(4) "free" [4]=> string(3) "rar" [5]=> string(4) "bloc" [6]=> string(5) "sakai" [7]=> string(5) "lathe" [8]=> string(8) "piedmont" [9]=> string(4) "pool" [10]=> string(7) "federal" [11]=> string(6) "income" [12]=> string(3) "tax" [13]=> string(10) "technology" [14]=> string(6) "safety" [15]=> string(6) "images" [16]=> string(8) "personal" [17]=> string(4) "name" [18]=> string(10) "signatures" [19]=> string(2) "hp" [20]=> string(8) "pavilion" [21]=> string(5) "intel" [22]=> string(2) "bg" [23]=> string(7) "chinese" [24]=> string(8) "calendar" }
М
На сайте с 08.02.2006
Offline
59
#6

Такой код работает? Если да, то проблема не в array_unique.


$arr = array("slovo","slovo2","slovo2","slovo");
print_r(array_unique($arr));

P.S. Как-то не по-русски у вас реализован функционал. Я так понимаю надо просто вытащить из текста слова больше 2-х символов и собрать их уникальные значения через "\n"


$html = file_get_contents($string);
preg_match_all('/[a-zA-Z]{3,}/', $html, $result);
$out = implode("\n",array_unique($result[0]));
H
На сайте с 21.12.2007
Offline
24
#7

сделал так

while ...
{
$html = file_get_contents($string);
preg_match_all("/[a-zA-Z]{3,}/", $html, $result);
$out = implode(" ", array_unique($result[0]));
$out_x = $out_x.$out." ";
}

$out_array = array_unique(explode(" ", $out_x));
sort($out_array);
for ($i=0; $i<count($out_array); $i++)
{
$text = $text.$out_array[$i]."\n";
}

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий