Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > 2 массива


Автор: meridian 23.1.2006, 14:28
Привет всем,

есть 2 массива
@choices_sources
@choices_target

Нужно склеить 2 массива, но чтобы каждому элемету массива @choices_sources
был найден такой же элемент в массиве @choices_target

сделал вот так, но че то не так, подсобите

Код

foreach $element ( @choices_sources )
{
    @choices = grep { $element } @choices_target;
}


пасиба

Автор: Kannabismus 23.1.2006, 15:20
Не совсем понятно, что Вы имеете ввиду.
Возможно ошибка в том, что Вы каждый раз перезаписываете заново @choices. Попробуйте так:

Код

foreach $element ( @choices_sources ) {
   push @choices, grep { /$element/ } @choices_target;
}


Автор: meridian 23.1.2006, 15:24
пасиба, конгениально, работает
а еще тогда вопрос,
чтобы названия элементов массива были только русские буквы

Автор: meridian 23.1.2006, 15:50
Вот так получилось
foreach $element ( @choices_sources )
{
if ( $element=~m/[А-Яа-я]/gi )
{
push @choices, grep { /$element/ } @choices_target;
}
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)