Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell:多维数组作为函数的返回值_Powershell_Multidimensional Array_Return Value - Fatal编程技术网

Powershell:多维数组作为函数的返回值

Powershell:多维数组作为函数的返回值,powershell,multidimensional-array,return-value,Powershell,Multidimensional Array,Return Value,我在PowerShell中遇到了一些关于二维数组的问题。 以下是我想做的: 我创建了一个应该返回二维数组的函数。调用函数时,我希望返回值是一个新的二维数组 为了更好地理解,我添加了一个示例函数,如下所示: function fillArray() { $array = New-Object 'object[,]' 2,3 $array[0,0] = 1 $array[0,1] = 2 $array[0,2] = 3 $array[1,0] = 4

我在PowerShell中遇到了一些关于二维数组的问题。 以下是我想做的:

我创建了一个应该返回二维数组的函数。调用函数时,我希望返回值是一个新的二维数组

为了更好地理解,我添加了一个示例函数,如下所示:

function fillArray() {
    $array = New-Object 'object[,]' 2,3

    $array[0,0] = 1
    $array[0,1] = 2
    $array[0,2] = 3

    $array[1,0] = 4
    $array[1,1] = 5
    $array[1,2] = 6

    return $array
}
$erg_array = New-Object 'object[,]' 2,3
$erg_array = fillArray

$erg_array[0,1] # result is 1 2
$erg_array[0,2] # result is 1 3
$erg_array[1,0] # result is 2 1

结果不是我所期望的。我希望以函数中声明的相同方式返回信息。所以我希望
$erg_array[0,1]
给我
2
,而不是我用上面的代码收到的
1,2
。如何实现这一点?

为了在不“展开”的情况下准确返回数组,请使用逗号运算符(请参见
有关\u运算符的帮助


使用单个项创建一个数组(这是我们的数组)。这个1项数组在返回时展开,但只有一个级别,因此结果正好是一个对象,即我们的数组。如果没有
我们的数组本身将展开,它的项目将返回,而不是数组。这种在返回时使用逗号的技术也应该用于其他一些集合(如果我们想返回集合实例,而不是它的项)。

此端口中真正缺少的是每个人都在寻找的内容。如何从函数中获取多个内容。好吧,我将分享每个人都想知道谁搜索并找到了这个,希望它能回答这个问题

function My-Function([string]$IfYouWant)
{
[hashtable]$Return = @{} 

$Return.Success = $False
$Return.date = get-date
$Return.Computer = Get-Host

Return $Return
}
#End Function

$GetItOut = My-Function
Write-host “The Process was $($GetItOut.Success) on the date $($GetItOut.date) on the     host     $($GetItOut.Computer)”

#You could then do
$var1 = $GetItOut.Success
$Var2 =$GetItOut.date
$Var3 = $GetItOut.Computer

If ($var1 –like “True”){write-host “Its True, Its True”}

为什么您希望
$erg_数组[0,1]#结果是12
?它应该是
$erg_数组[0,1]#结果2
,正如您定义的,这是一项,而不是2项。所以你不太清楚你想要什么。您正在尝试获取不存在的内容。要么修改目标,要么修改方法,例如,我们可以尝试使用其他内容,而不是2-dim阵列。
function My-Function([string]$IfYouWant)
{
[hashtable]$Return = @{} 

$Return.Success = $False
$Return.date = get-date
$Return.Computer = Get-Host

Return $Return
}
#End Function

$GetItOut = My-Function
Write-host “The Process was $($GetItOut.Success) on the date $($GetItOut.date) on the     host     $($GetItOut.Computer)”

#You could then do
$var1 = $GetItOut.Success
$Var2 =$GetItOut.date
$Var3 = $GetItOut.Computer

If ($var1 –like “True”){write-host “Its True, Its True”}