powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вхождение элемента массива в другой массив
2 сообщений из 2, страница 1 из 1
Вхождение элемента массива в другой массив
    #32853842
Здраствуйте!

Я к сожалению в Перле не очень силён.

И вот такая задача:
Есть два массива.
1-ый может быть на 50-100 элементов
2-ой приблизительно 1-10 элементов

Фомрируются массивы в результате выполнения запроса следующим образом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 

   $sth->execute();

    my @records;

    while(my $a = $sth->fetchrow_arrayref)
    {
        my %row = (NAME => $a->[ 1 ], VALUE => $a->[ 0 ] );
        $row{selected} =  1  if $cgi_field eq $a->[ 0 ];
        push @records, \%row;
    }

Нужно в 1-ом массиве оставить только те элементы, которые встречаются во втором массиве (в смысле Value 1-ого массива и одно из Value 2-ого массива должны совпадать, иначе - удалять элемент из 1-ого массивв)
Т.е.:

массив 1: 0,1,2,3,4,5,6,7,8,9
массив 2: 8,9,11,12

Нужно чтобы в массиве1 остались значения: 8,9


Делать двойной цикл в котором снаружи большой массив а внутри маленький
и в этом всём сравнивать элементы и удалять ненужные мне очень-очень не нравится такой способ :-(

Может кто-то подскажет есть ли какие-то такие функции в Perl (насколько я слышал Perl крут в обработке строк...может и с массивами он много чего могёт?) с помощью которых можно это реализовать гораздо быстрее!
...
Рейтинг: 0 / 0
Вхождение элемента массива в другой массив
    #32859586
Shoore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если каждый из массивов не содержит повторяющихся значений, можно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
@a = ( 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 );
@b = ( 8 , 9 , 11 , 12 );

@a_lut{@a} =  1  x @a;
@b_lut{@b} =  1  x @b;

foreach (keys(%a_lut)) { delete $a_lut{$_} unless exists $b_lut{$_} }

@a = keys(%a_lut);
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вхождение элемента массива в другой массив
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]