回答編集履歴

4

追記をもとに修正しました。

2020/05/09 20:54

投稿

okina
okina

スコア471

test CHANGED
@@ -32,8 +32,16 @@
32
32
 
33
33
  $array[$i][3] += $array[$j][3];
34
34
 
35
- array_splice($array,j,1);
35
+ unset($array[$j]));
36
36
 
37
37
 
38
38
 
39
39
  のように。
40
+
41
+ ただしこれだと、インデックスは詰まらないので、気持ち悪ければ終わった後にarray_valuesで詰めればいいかと。
42
+
43
+ 途中で詰めるとたぶんおかしくなります。
44
+
45
+
46
+
47
+ 未検証なのでおかしければ教えてください

3

追記に対応

2020/05/09 20:54

投稿

okina
okina

スコア471

test CHANGED
@@ -27,3 +27,13 @@
27
27
 
28
28
 
29
29
  ただし、これだけだと追記部分が問題になってきますので、結果的に配列が一致する場合、更新するという趣旨ですので、都度配列を更新してはいかがかと思いました。
30
+
31
+
32
+
33
+ $array[$i][3] += $array[$j][3];
34
+
35
+ array_splice($array,j,1);
36
+
37
+
38
+
39
+ のように。

2

追記部分

2020/05/09 20:40

投稿

okina
okina

スコア471

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
     if($array[$i][0] == $array[$j][0] && $array[$i][1] == $array[$j][1] && $array[$i][2] == $array[$j][2]){
12
12
 
13
- $sum += ($array[$i][3] + $array[$i+1][3]);
13
+
14
14
 
15
15
  }
16
16
 
@@ -26,4 +26,4 @@
26
26
 
27
27
 
28
28
 
29
- ただし、これだと追記部分が問題になってきますので、
29
+ ただし、これだけだと追記部分が問題になってきますので、結果的に配列が一致する場合、更新するという趣旨ですので、都度配列を更新してはいかがかと思いました。

1

追記部分について

2020/05/09 20:28

投稿

okina
okina

スコア471

test CHANGED
@@ -23,3 +23,7 @@
23
23
 
24
24
 
25
25
  ちょっと動くか検証できてないんですが、隣り合わせしか比較できない問題は回避できます。
26
+
27
+
28
+
29
+ ただし、これだと追記部分が問題になってきますので、