2016-03-02 18 views
0

我有此数组:搜索的多阵列,并返回指数

$Cluster = @(("vcdvc012", "CL-CC5-DR"), 
    ("vcdvc013", "CL-CCL3-DR")) 

现在我想搜索“vcdvc012”才能够得到尽可能结果“CL-CC5-DR”。

这样做的最好方法是什么? Gabrie

+0

最好的办法是用一个哈希表或具有多个属性的对象的数组来替代它,所以你并不需要摆在首位 –

+0

我想重新多级阵列强制@ FrodeF。的评论,因为虽然下面的答案确实提供了答案,但可能有更好的方法来完成你正在努力完成的任务。 – TheMadTechnician

回答

2

尝试:

$Cluster | ? { $_[0] -eq 'vcdvc012' } | % { $_[1] } 
0

弗罗德有一个普遍的答案,但它依赖于知道元素的位置。由于您正在处理阵列,因此运营商-contains-in将对此有所帮助。除非您创建了自己的自定义对象,否则对第二个元素的选择不会有太大的改变。

$Cluster | Where-Object {$_ -contains 'vcdvc012'} | ForEach-Object{ $_[1] } 
$Cluster | Where-Object {'vcdvc012' -in $_} | ForEach-Object{ $_[1] } 

两者的工作原理都是一样的。后者更直观,因为许多人困惑于-contains的功能。 -in在V3.0提供