Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопрос о удаление дубликатов.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
event
Отправлено: 29 Июля, 2011 - 23:22:48
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Добрый вечер !
У меня такая ситуация мне нужно вывести все данные из файла id.txt (файл содержит цифры) на страничку, я написал такой скрипт:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3.  
  4. $filename = @file("id.txt"); // Подгружаем содержимое файла id.txt.
  5. if (!$filename) die('Неверный файл !'); // Выводим ошибку если такого файла нету.
  6.  
  7. foreach ($filename as $id) {
  8. echo $id."<br>";
  9. }
  10.  
  11. ?>
  12.  


Но у меня сложилась проблема в файле id.txt в єтом файле находятся разные цифры, есть цифры которые повторяются дважды, есть такие что и повторяются трижды, есть такие которые повторяются много раз, есть такие которые не повторяются, и т.д и т.п.

Ну вот мне нужно вывести на страничку все цифры но без дубликатов, то есть если у нас был файл id.txt с таким содержанием (каждая цифра с новой строчки):
1
1
2
2
2
3
3, то должно получиться так
1
2
3

Вообщем єто вроде бы нужно делать через функцию array_unique, но я пробовал через нее но ничего не вышло, помогите пожалуйста.

(Отредактировано автором: 29 Июля, 2011 - 23:24:42)

 
 Top
LIME
Отправлено: 29 Июля, 2011 - 23:40:07
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




event покажите как пробовали через array_unique
 
 Top
event
Отправлено: 29 Июля, 2011 - 23:42:15
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




LIME пишет:
event покажите как пробовали через array_unique


Вот так пробовал:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3.  
  4. $filename = @file("id.txt"); // Подгружаем содержимое файла id.txt.
  5. if (!$filename) die('Неверный файл !'); // Выводим ошибку если такого файла нету.
  6. $test = array_unique($filename);
  7. foreach ($test as $id) {
  8. echo $id."<br>";
  9. }
  10. ?>
  11.  

(Отредактировано автором: 29 Июля, 2011 - 23:42:39)

 
 Top
LIME
Отправлено: 29 Июля, 2011 - 23:43:57
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




eventи что совсем без изменений?
(Добавление)
я к тому что может в некоторых значениях просто пробелы затесались?
 
 Top
event
Отправлено: 29 Июля, 2011 - 23:49:16
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




LIME пишет:
eventи что совсем без изменений?
(Добавление)
я к тому что может в некоторых значениях просто пробелы затесались?


Изменения был она обработала только одну цифру нормально, остальные так и остались....
 
 Top
LIME
Отправлено: 29 Июля, 2011 - 23:49:32
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




ну это конечно странно хотелось бы разобраться
но можно формировать еще 1 массив и каждый раз проверять если in_array то continue если нет то заносим в массив и выводим...или потом выводим полученный массив ...но это конечно не лучший выход
 
 Top
iflight
Отправлено: 29 Июля, 2011 - 23:49:43
Post Id



Гость


Покинул форум
Сообщений всего: 119
Дата рег-ции: Март 2011  
Откуда: Россия, Сыктывкар


Помог: 2 раз(а)




Смысл в том, что file() оставляет невидимые знаки табуляции, и поидее после array_unique() будет повторяться последняя в списке цифра. Попробуйте так:
PHP:
скопировать код в буфер обмена
  1. $filename = @file("id.txt"); // Подгружаем содержимое файла id.txt.
  2. if (!$filename) die('Неверный файл !'); // Выводим ошибку если такого файла нету.
  3. foreach($filename as $val){
  4.         $arr[] = trim($val);
  5. }
  6. foreach (array_unique($arr) as $id) {
  7.         echo $id."<br>";
  8. }
 
 Top
LIME
Отправлено: 29 Июля, 2011 - 23:52:14
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




event пишет:
Изменения был она обработала только одну цифру нормально, остальные так и остались....
попробуйте var_dump массива и покажите что вывело
(Добавление)
iflight пишет:
Смысл в том, что file() оставляет невидимые знаки табуляции, и поидее после array_unique() будет повторяться последняя в списке цифра

вот сейчас чего-то не понял
да остается знак конца строки
но это у всех элементов и идентичности строк это не мешает
можно "на пальцах" объяснить ?
 
 Top
event
Отправлено: 30 Июля, 2011 - 00:02:40
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Спасибо разобрался, спасибо Вам LIME, iflight ;)

(Отредактировано автором: 30 Июля, 2011 - 00:03:42)

 
 Top
LIME
Отправлено: 30 Июля, 2011 - 00:03:48
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




event пишет:
Спасибо разобрался
??? интересно же ))
 
 Top
event
Отправлено: 30 Июля, 2011 - 00:05:04
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 542
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Если сможете посмотреть сюда, может сможете помочь: http://forum.php.su/topic.php?fo...1&topic=1947
 
 Top
iflight
Отправлено: 30 Июля, 2011 - 00:12:38
Post Id



Гость


Покинул форум
Сообщений всего: 119
Дата рег-ции: Март 2011  
Откуда: Россия, Сыктывкар


Помог: 2 раз(а)




LIME у последнего нет переноса строки
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB