Ich habe ein Problem bei der Konvertierung meines vorhandenen vbs-Skripts in PowerShell-Skript festgestellt. Ich habe hier mit einigen Dummy-Codes anstelle von meinem ursprünglichen Code veranschaulicht. In Beispiel 1, ich habe nur 1 Satz von Elementen im Array, nach Rückgabe der Array-Variable an die Funktion, zeigt es nur P.Mehrdimensionales Array von Funktion zurückgeben
Allerdings in Beispiel 2, wo ich 2 Satz von Elementen im Array haben, Bei Rückgabe der Array-Variable an die Funktion werden die Elemente ordnungsgemäß angezeigt.
Wenn Sie das Array innerhalb der Funktion in Beispiel 1 und 2 drucken. Es gibt kein Problem beim Abrufen der Ergebnisse.
Ich habe gegoogelt und nicht in der Lage, eine Lösung zu finden. Vielen Dank im Voraus für die freundliche Hilfe.
Beispiel 1:
function testArray {
$array1 = @()
$array1 += ,@("Apple","Banana")
return $array1
}
$array2 = testArray
Write-Host $array2[0][1]
Ergebnis ist "P".
Beispiel 2:
function testArray {
$array1 = @()
$array1 += ,@("Apple","Banana")
$array1 += ,@("Orange","Pineapple")
return $array1
}
$array2 = testArray
Write-Host $array2[0][0]
Ergebnis ist "Apple".
'Rückkehr array1' $ ->' Rückkehr $ array1' oder '$ array2 = testArray' ->' $ array2 = @ (testarray) ' – PetSerAl
@petseral es funktioniert, jeder Grund dafür, oder es ist nur die Syntax von Powershell? –
PowerShell entrollt Arrays, die von einer Funktion zurückgegeben werden. Indem Sie das zurückgegebene Array mit dem Array-Konstruktionsoperator (',') voranstellen, wickeln Sie es in ein anderes Array ein, das bei der Rückkehr aufgerollt wird und das verschachtelte Array intakt lässt. –