【问题标题】:match values between 2 arrays and arrange in new array匹配2个数组之间的值并排列在新数组中
【发布时间】:2020-06-20 19:34:50
【问题描述】:

所以我有 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

我想要做的是排列数组 2 中的字母以匹配数组 1 中的数字并将其放入新数组中,因此输出将是这样的。

数组3

bb
aa
cc
gg
dd
ee
ff
hh

 $array1 | %{

       if ($array2 -match $_) {

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


        }
    }


【问题讨论】:

  • 到目前为止你尝试过什么? (请添加到问题中)
  • 尝试了上述方法,但没有运气无法在我的脑海中掌握如何匹配然后安排,就像如果我匹配一个 4 然后我会在它旁边得到 bb 并继续以这种方式循环获取所有值

标签: arrays powershell


【解决方案1】:

以下是使用hashtable的解决方案。

$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]

【讨论】:

  • 非常感谢您的帮助
  • 很高兴为您提供帮助。
猜你喜欢
  • 1970-01-01
  • 2018-05-29
  • 2018-09-01
  • 1970-01-01
  • 2021-08-19
  • 1970-01-01
  • 2021-03-17
  • 2018-10-01
  • 2014-08-28
相关资源
最近更新 更多