Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.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
Arrays 基于第一个元素的PowerShell foreach()多维数组_Arrays_Powershell_Multidimensional Array - Fatal编程技术网

Arrays 基于第一个元素的PowerShell foreach()多维数组

Arrays 基于第一个元素的PowerShell foreach()多维数组,arrays,powershell,multidimensional-array,Arrays,Powershell,Multidimensional Array,我有一个相当基本的多维数组,看起来像这样: 2017,123 2017,25 2018,5 2018,60 2017,11 2017,159 2018,65 我希望运行ForEach()循环或类似的函数,根据第一个元素中指示的年份对第二个元素中的数字求和,以便最终得到如下输出: 2017,123 2017,25 2018,5 2018,60 2017,11 2017,159 2018,65 如何最好地完成此任务?假设您的阵列看起来像“$array”,这将为您提供所需的: $2017t

我有一个相当基本的多维数组,看起来像这样:

2017,123 
2017,25
2018,5
2018,60
2017,11
2017,159
2018,65
我希望运行ForEach()循环或类似的函数,根据第一个元素中指示的年份对第二个元素中的数字求和,以便最终得到如下输出:

2017,123 
2017,25
2018,5
2018,60
2017,11
2017,159
2018,65

如何最好地完成此任务?

假设您的阵列看起来像“$array”,这将为您提供所需的:

$2017total = 0
$2018total = 0

$array = "2017,123",
"2017,25",
"2018,5",
"2018,60",
"2017,11" | % { 

if ($_ -match '2017') {
    $2017 = ($_ -split ',')[1]
    $2017total += $2017
}
else {
    $2018 = ($_ -split ',')[1]
    $2018total += $2018
} 
}

Write-Host "2017,$2017total"
Write-Host "2018,$2018total"
以下解决方案简洁但不快速:


请向我们显示用于定义数组和分配值的代码。答案可能会根据实际的多维数组、锯齿状/嵌套数组还是对象的平面数组而有所不同。这是一个非常基本的数组。它填充在一个循环中,看起来像这样:$myArray+=,($year,$amount)创建一个哈希表?我一直在尝试,但我的PS技能显然还没有:(我非常欣赏这种方法,但是数组可能在第一个元素中包含任意数量的不同年份。我正在寻找一种动态处理这种变化的方法..在SQL中,我所寻找的类似于按顺序依次选择SUM(COLUMN2)GROUP BY COLUMN1。)COLUMN1@Bj瑟恩·山德维克:我的荣幸;很高兴这对你有帮助。