回答編集履歴

3

要望

2017/09/12 02:35

投稿

退会済みユーザー
test CHANGED
@@ -73,3 +73,43 @@
73
73
  var_dump($result);
74
74
 
75
75
  ```
76
+
77
+
78
+
79
+ **更に追記**
80
+
81
+ 解決にするのはイイんですけど、せめて質問の配列、修正しませんか^^;
82
+
83
+ $A は Notice も出るし、$result はそもそも配列として成立しません。
84
+
85
+ 正解も回答者が記述しているのですから。。。
86
+
87
+
88
+
89
+ ```php
90
+
91
+ var_dump($A);
92
+
93
+ array(4) {
94
+
95
+ ["type"]=>
96
+
97
+ int(2)
98
+
99
+ ["value"]=>
100
+
101
+ int(10)
102
+
103
+ ["cnt"]=>
104
+
105
+ int(5)
106
+
107
+ ["no"]=>
108
+
109
+ string(6) "No1011"
110
+
111
+ }
112
+
113
+ ```
114
+
115
+

2

キャストを修正

2017/09/12 02:35

投稿

退会済みユーザー
test CHANGED
@@ -66,7 +66,7 @@
66
66
 
67
67
  list($type, $value, $cnt) = explode('_', $key);
68
68
 
69
- $result[] = ['type' => $type, 'value'=> $value, 'cnt'=> $cnt, 'nolist'=> $nolist];
69
+ $result[] = ['type' => $type, 'value'=> (int)$value, 'cnt'=> (int)$cnt, 'nolist'=> $nolist];
70
70
 
71
71
  }
72
72
 

1

追記

2017/09/11 15:40

投稿

退会済みユーザー
test CHANGED
@@ -1 +1,75 @@
1
1
  この仕様だと、無理です。
2
+
3
+
4
+
5
+ **追記**
6
+
7
+ 課題として面白そうだったので、勝手に仕様を決めてスクリプト書いてみました。
8
+
9
+ ```php
10
+
11
+ <?php
12
+
13
+
14
+
15
+ $a = [
16
+
17
+ ['type' =>1, 'value'=>200, 'cnt'=>5, 'no'=>'No1001'],
18
+
19
+ ['type' =>1, 'value'=>200, 'cnt'=>6, 'no'=>'No1002'],
20
+
21
+ ['type' =>1, 'value'=>201, 'cnt'=>5, 'no'=>'No1003'],
22
+
23
+ ['type' =>1, 'value'=>201, 'cnt'=>5, 'no'=>'No1004'],
24
+
25
+ ['type' =>2, 'value'=>10, 'cnt'=>10, 'no'=>'No1005'],
26
+
27
+ ['type' =>1, 'value'=>200, 'cnt'=>5, 'no'=>'No1006'],
28
+
29
+ ['type' =>2, 'value'=>10, 'cnt'=>10, 'no'=>'No1007'],
30
+
31
+ ['type' =>2, 'value'=>11, 'cnt'=>5, 'no'=>'No1008'],
32
+
33
+ ['type' =>1, 'value'=>201, 'cnt'=>5, 'no'=>'No1009'],
34
+
35
+ ['type' =>1, 'value'=>200, 'cnt'=>5, 'no'=>'No1010'],
36
+
37
+ ['type' =>2, 'value'=>10, 'cnt'=>5, 'no'=>'No1011'],
38
+
39
+ ];
40
+
41
+
42
+
43
+ foreach ($a as $val) {
44
+
45
+ $type = $val['type'];
46
+
47
+ $value = $val['value'];
48
+
49
+ $cnt = $val['cnt'];
50
+
51
+ $no = $val['no'];
52
+
53
+ if(isset($tmp[$type.'_'.$value.'_'.$cnt])){
54
+
55
+ $tmp[$type.'_'.$value.'_'.$cnt] = $tmp[$type.'_'.$value.'_'.$cnt].', '.$no;
56
+
57
+ }else{
58
+
59
+ $tmp[$type.'_'.$value.'_'.$cnt] = $no;
60
+
61
+ }
62
+
63
+ }
64
+
65
+ foreach ($tmp as $key => $nolist) {
66
+
67
+ list($type, $value, $cnt) = explode('_', $key);
68
+
69
+ $result[] = ['type' => $type, 'value'=> $value, 'cnt'=> $cnt, 'nolist'=> $nolist];
70
+
71
+ }
72
+
73
+ var_dump($result);
74
+
75
+ ```