сопоставить значения между двумя массивами и разместить в новом массиве - PullRequest
1 голос
/ 08 марта 2020

Итак, у меня есть 2 массива

array1

4
5
6
7
8
9
10
11

array2 (aa 5), ​​это один элемент в массиве и так далее

aa  5
bb  4
cc  6
dd  8
ee  9
ff  10
gg  7
hh  11

Что я хочу для этого нужно расположить буквы в массиве 2 так, чтобы они совпадали с числами в первом массиве, и получить их в новом массиве, чтобы выходные данные были такими:

array3

bb
aa
cc
gg
dd
ee
ff
hh

 $array1 | %{

       if ($array2 -match $_) {

        array1 | select-string -pattern '(\w\w)'| % {$_.Matches.groups[1].value}


        }
    }


1 Ответ

2 голосов
/ 09 марта 2020

Ниже приведено решение с использованием хеш-таблицы.

$array1 = 4,5,6,7,8,9,10,11

$array2 = @"
aa  5
bb  4
cc  6
dd  8
ee  9
ff  10
gg  7
hh  11
"@ -split [Environment]::NewLine

# create hashtable
$h = @{}
$array2 | foreach { $val, $key = $_ -split "\s+"; $h.Add([int]$key, $val) }

$array3 = $h[$array1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...