所以我有2个数组
数组1
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
我想做的是在array2中排列字母以匹配第一数组中的数字,并在一个新数组中获取它,因此输出将像这样。
数组3
bb
aa
cc
gg
dd
ee
ff
hh
$array1 | %{
if ($array2 -match $_) {
array1 | select-string -pattern '(\w\w)'| % {$_.Matches.groups[1].value}
}
}
最佳答案
以下是使用哈希表的解决方案。
$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]
关于arrays - 在两个数组之间匹配值并排列在新数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60591624/