【发布时间】:2014-06-25 03:18:42
【问题描述】:
基本上我得到了一个具有这种结构的数组:
数组:
0 => {
time: "090019"
val: "2.444"
qta: "292"
dir: "up"
param: "S"
}
1=> {
time: "090019"
val: "2.442"
qta: "938"
dir: "dwn"
param: "N"
}
2 => {
time: "090019"
val: "2.442"
qta: "220"
dir: "up"
param: "N"
}
3 => {
time: "100043"
val: "2.44"
qta: "220"
dir: "dwn"
param: "N"
}
.. 以此类推
n => {
time: "103051"
val: "2.444"
qta: "330"
dir: "dwn"
param: "N"
}
我的目标是获得一个结构相同的数组,其中数据将以精确的方式合并。
如果两个或多个数组值具有相同的时间 (time) 和值 (val),它们将是:如果它们具有相同的方向 (dir),则相加,否则相减(在这种情况下,结果方向将是较高值的(dir))。参数(param)无关紧要。
我对 Php 很陌生,当我必须解决这样的问题时,我不知道如何处理。
希望足够清楚,任何建议将不胜感激。
编辑:
生成的数组将如下所示:
0 => {
time: "090019"
val: "2.444"
qta: "292"
dir: "up"
param: "S"
}
1 => {
time: "090019"
val: "2.442"
qta: "718"
dir: "dwn"
param: "N"
}
2 => {
time: "100043"
val: "2.44"
qta: "220"
dir: "dwn"
param: "N"
}
..
n => {
time: "103051"
val: "2.444"
qta: "330"
dir: "dwn"
param: "N"
}
【问题讨论】:
-
你能举个例子,在你的初始数组中有五个项目,然后你希望结果看起来像什么?
-
如果你有三四个相同的项目怎么办?你想如何合并它们?
-
如果你有四个具有相同时间和 val 的项目,你说你想让它们“如果它们有相同的方向 (dir),则添加,如果它们没有,则减去”但是你怎么做当您有四个方向值时确定“相同方向”?您的意思是所有“向上”目录都添加到“向下”吗?那么从哪个中减去哪个?你的意思是上升是积极的,下降是消极的,你把它们加在一起吗?
-
没错!我的意思是向上是正数,向下是负数,并将它们加在一起,但最后数字将没有符号,如果是正数,它将是“向上”,如果是负数,它将是“向下”。我的经验告诉我,通常最多连续 3 个可能具有相同的时间/验证。
-
这可能是包含在问题中的好信息:)
标签: php arrays sorting foreach merge