delphi 如何对动态数组求和(INT型),求最大值和最小值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 如何对动态数组求和(INT型),求最大值和最小值相关的知识,希望对你有一定的参考价值。
var
Editsum:Array of integer;
i:integer;
begin
SetLength(Editsum,strtoint(edit3.Text));
for i:=0 to strtoint(edit3.Text)-1 do
begin
Editsum?????求和(INT型),求最大值和最小值
end;
end;
你设置完数组的长度后,都没有赋值,你想求哪个的最大值和最小值,默认的答案就是,最大值和最小值都是0 参考技术B var
Editsum:Array of integer;
i,j:integer;
begin
SetLength(Editsum,strtoint(edit3.Text));
//这里要先对数组赋值啊。否则都是0
j := 0;
for i:=0 to strtoint(edit3.Text)-1 do
begin
j := Editsum[i] + j;
end;
end;本回答被提问者采纳
对同一产品的数组值求和
【中文标题】对同一产品的数组值求和【英文标题】:Sum array values of the same product 【发布时间】:2018-06-05 01:30:58 【问题描述】:我有以下类型的array
。 如何从输入array
获得所需的输出。 注意:array
是动态的 想要comp_size
与相同product_id
的总和。在此先感谢。输入数组
array:4 [
0 => array:3 [
"comp_size" => "4.5"
"comp_id" => "10"
"product_id" => "1"
]
1 => array:3 [
"comp_size" => "4.5"
"comp_id" => "11"
"product_id" => "2"
]
2 => array:3 [
"comp_size" => "4.5"
"comp_id" => "12"
"product_id" => "2"
]
3 => array:3 [
"comp_size" => "4.5"
"comp_id" => "13"
"product_id" => "2"
]
]
想要的结果:
[
0 => array [
product_id => 1
total_size => 4.5
]
1 => array[
product_id => 2
total_size => 13.5
]
]
【问题讨论】:
你的意思是mysql查询总和还是数组总和? @EtibarRustemzade 是的,输入数组来自 mysql,我想要这个数组根据所需的数组 你考虑过遍历数组吗?并对值求和? 【参考方案1】:试试这个,遍历数组的所有元素,对大小值求和:
<?php
$data = [] // original array;
$sum = [] // result;
foreach ($data as $dt)
if (!isset($sum[$dt['product_id']]))
$sum[$dt['product_id']] = 0;
$sum[$dt['product_id']] += $dt['comp_size'];
?>
【讨论】:
谢谢@cludio【参考方案2】:你可以使用 Laravel 的 Collection
的 groupBy
和 map
函数来做到这一点:
$collection = new \Illuminate\Support\Collection($array);
$group = $collection->groupBy('product_id');
$resultArray = $group->map(function($item, $key)
return [
'total_size' => $item->sum('comp_size'),
'product_id' => $key,
];
);
这将使您将来更容易扩展代码。
【讨论】:
非常感谢以上是关于delphi 如何对动态数组求和(INT型),求最大值和最小值的主要内容,如果未能解决你的问题,请参考以下文章