【发布时间】:2015-06-12 08:02:17
【问题描述】:
我有这样的 json 响应
Array
(
[0] => Array
(
[id] => 65070
[date] => 2015-06-05
[hour] => 0
[total] => 18
)
[1] => Array
(
[id] => 65070
[date] => 2015-06-05
[hour] => 2
[total] => 32
)
[2] => Array
(
[id] => 65070
[date] => 2015-06-07
[hour] => 0
[total] => 27
)
[3] => Array
(
[id] => 65070
[date] => 2015-06-07
[hour] => 2
[total] => 35
)
[4] => Array
(
[id] => 1838680
[date] => 2015-06-05
[hour] => 0
[total] => 957
)
[5] => Array
(
[id] => 1838680
[date] => 2015-06-05
[hour] => 2
[total] => 1266
)
[6] => Array
(
[id] => 1838680
[date] => 2015-06-07
[hour] => 0
[total] => 409
)
[7] => Array
(
[id] => 1838680
[date] => 2015-06-07
[hour] => 2
[total] => 1528
)
)
我想要这样的输出
id Hour 2015-06-05 2015-06-07 Difference
65070 0 18 27 9
65070 2 32 35 3
1838680 0 957 409 -548
1838680 2 1266
小时不固定为 0 或 2。也可以大于 2 或 1
【问题讨论】:
-
你有什么问题?
-
您已经尝试过什么了吗?向我们展示您的代码。
-
$newArray = array(); $dates = 数组(); foreach($array as $entry) { if(!isset($newArray[$entry['id']])) $newArray[$entry['id']] = array(); if(!in_array($entry['date'], $dates)) array_push($dates, $entry['date']); array_push($newArray[$entry['id']], array($entry['total'], $entry['date']));回声“id”。 $日期[0] 。 “”。 $日期[1]。 “”。 “不同之处”; foreach($newArray as $id => $entry) { echo $id . “ ” . (($entry[0][1]==$dates[0]) ? $entry[0][0] . " " . $entry[1][0] : " " . $entry[ 0][0]) 。 “ ” . ((count($entry) == 2) ? $entry[1][0]-$entry[0][0] : "") ."
"; } -
这是小时不存在时的代码.. 但现在我也希望小时明智
-
请edit 将代码放入问题中,因为 cmets 不保留格式,并准确解释给您带来麻烦的原因,因为这听起来很容易更改。