teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

エンターボタン投稿されてしまったので追記しました。

2017/11/08 03:21

投稿

kphex
kphex

スコア42

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,10 @@
1
+ ###要件
1
2
  DBから取得したデータで、集計の際に必要な以下のような配列があり、配列の中身を追加しながらマージをしたいと思っております。
3
+
4
+ バージョン
5
+ CentOS 6.8
6
+ php : 5.6
7
+
2
8
  ```php
3
9
  [0]=>
4
10
  array(6) {
@@ -27,45 +33,32 @@
27
33
  }
28
34
  ```
29
35
 
30
- 期待する結果
36
+ ###期待する結果
31
37
  ```php
32
38
  [0]=>
33
39
  array(6) {
34
- ["call_count"]=>
40
+ ["call_count"]=>string(2) "31"
35
- string(2) "31"
36
- ["duration"]=>
37
- string(8) "00:00:45"
41
+ ["duration"]=>string(8) "00:00:45"
38
42
  ["call_status"]=>
39
43
  array(5) {
40
- ["断り"]=>
44
+ ["断り"]=>int(10)
41
- int(10)
42
- ["不在"]=>
45
+ ["不在"]=>int(5)
43
- int(5)
44
- ["留守"]=>
46
+ ["留守"]=>int(5)
45
- int(5)
46
- ["断り(他)"]=>
47
+ ["断り(他)"]=>int(7)
47
- int(7)
48
- ["資料送付"]=>
48
+ ["資料送付"]=>int(2)
49
- int(2)
50
- [""]=>
49
+ [""]=>int(2)
51
- int(1)
52
50
  }
53
51
  }
54
- [1]=>
52
+ ```
53
+
55
- array(5) {
54
+ ###やってみた事
56
- ["call_count"]=>
55
+ +演算子で一次の配列は問題なく追加出来たのですが、これだと2次元になるcall_countの配列がどうしても値まで追加しながらが実現出来ず、方法がわからないままでいます。
57
- string(1) "9"
56
+ ```php
58
- ["duration"]=>
59
- string(8) "00:00:30"
60
- ["call_status"]=>
57
+ foreach($data as $key => $val) {
61
- array(4) {
62
- [""]=>
58
+ if($key < 0) {
63
- int(1)
59
+ $data[0]['call_count'] += $val['call_count'];
64
- ["資料送付"]=>
60
+ $data[0]['duration'] += $val['duration'];
65
- int(2)
66
- ["断り"]=>
61
+ $data[0]['call_status'] += $val['call_status'];
67
- int(5)
68
- ["不在"]=>
69
- int(1)
70
- }
62
+ }
63
+ }
71
64
  ```