Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Perl - хитрое сравнение массивов

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

OLEX



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть массив.
И есть его модифицированная (не обязательно) копия.
Подскажите как сравнить новый и старый массивы, и найти в измененном массиве новые элементы, тех которых не было в старом,  удаленные элементы, те которые остались в старом массиве, но нету в новом, и элементы, которые присутствуют в старом и в новом массивах.
 
Буду премного благодарен за подсказку или готовое решение

----------
Отче Наш, иже еси в моем PC. Да святится имя и расширение Твоё. ENTER.

Всего записей: 3590 | Зарегистр. 09-07-2002 | Отправлено: 07:18 04-12-2008
OLEX



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хотя бы удаленные элементы как найти....... :

----------
Отче Наш, иже еси в моем PC. Да святится имя и расширение Твоё. ENTER.

Всего записей: 3590 | Зарегистр. 09-07-2002 | Отправлено: 14:04 04-12-2008
OLEX



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сваял так:
 
# @a - исходный массив
# @b - модифицированый массив
 
%seen_a = ();
%seen_b = ();
@aonly = (); # уникальные элементы в исходном массиве
@bonly = (); # уникальные элементы в модифицированном массиве
 
foreach $item (@b) { $seen_b{$item} = 1;}
foreach $item (@a) { $seen_a{$item} = 1;}
 
foreach $item (@a) { push(@aonly, $item) unless $seen_b{$item} }
foreach $item (@b) { push(@bonly, $item) unless $seen_a{$item} }
 
Совпадающих эелементов не ищет, но оно мне не понадобилось
 
Добавлено:
Нашел еще и модуль: Array::Diff  
 
http://search.cpan.org/dist/Array-Diff-0.05/lib/Array/Diff.pm
 
This module do diff two arrays, and return added and deleted arrays.

----------
Отче Наш, иже еси в моем PC. Да святится имя и расширение Твоё. ENTER.

Всего записей: 3590 | Зарегистр. 09-07-2002 | Отправлено: 16:28 04-12-2008
OLEX



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Блин который раз в гугле нахожу свою же тему, которая в который раз выручает

Всего записей: 3590 | Зарегистр. 09-07-2002 | Отправлено: 06:35 08-03-2016
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Perl - хитрое сравнение массивов


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru