2016-03-02 32 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提供