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

回答編集履歴

3

要望

2017/09/12 02:35

投稿

退会済みユーザー
answer CHANGED
@@ -35,4 +35,23 @@
35
35
  $result[] = ['type' => $type, 'value'=> (int)$value, 'cnt'=> (int)$cnt, 'nolist'=> $nolist];
36
36
  }
37
37
  var_dump($result);
38
- ```
38
+ ```
39
+
40
+ **更に追記**
41
+ 解決にするのはイイんですけど、せめて質問の配列、修正しませんか^^;
42
+ $A は Notice も出るし、$result はそもそも配列として成立しません。
43
+ 正解も回答者が記述しているのですから。。。
44
+
45
+ ```php
46
+ var_dump($A);
47
+ array(4) {
48
+ ["type"]=>
49
+ int(2)
50
+ ["value"]=>
51
+ int(10)
52
+ ["cnt"]=>
53
+ int(5)
54
+ ["no"]=>
55
+ string(6) "No1011"
56
+ }
57
+ ```

2

キャストを修正

2017/09/12 02:35

投稿

退会済みユーザー
answer CHANGED
@@ -32,7 +32,7 @@
32
32
  }
33
33
  foreach ($tmp as $key => $nolist) {
34
34
  list($type, $value, $cnt) = explode('_', $key);
35
- $result[] = ['type' => $type, 'value'=> $value, 'cnt'=> $cnt, 'nolist'=> $nolist];
35
+ $result[] = ['type' => $type, 'value'=> (int)$value, 'cnt'=> (int)$cnt, 'nolist'=> $nolist];
36
36
  }
37
37
  var_dump($result);
38
38
  ```

1

追記

2017/09/11 15:40

投稿

退会済みユーザー
answer CHANGED
@@ -1,1 +1,38 @@
1
- この仕様だと、無理です。
1
+ この仕様だと、無理です。
2
+
3
+ **追記**
4
+ 課題として面白そうだったので、勝手に仕様を決めてスクリプト書いてみました。
5
+ ```php
6
+ <?php
7
+
8
+ $a = [
9
+ ['type' =>1, 'value'=>200, 'cnt'=>5, 'no'=>'No1001'],
10
+ ['type' =>1, 'value'=>200, 'cnt'=>6, 'no'=>'No1002'],
11
+ ['type' =>1, 'value'=>201, 'cnt'=>5, 'no'=>'No1003'],
12
+ ['type' =>1, 'value'=>201, 'cnt'=>5, 'no'=>'No1004'],
13
+ ['type' =>2, 'value'=>10, 'cnt'=>10, 'no'=>'No1005'],
14
+ ['type' =>1, 'value'=>200, 'cnt'=>5, 'no'=>'No1006'],
15
+ ['type' =>2, 'value'=>10, 'cnt'=>10, 'no'=>'No1007'],
16
+ ['type' =>2, 'value'=>11, 'cnt'=>5, 'no'=>'No1008'],
17
+ ['type' =>1, 'value'=>201, 'cnt'=>5, 'no'=>'No1009'],
18
+ ['type' =>1, 'value'=>200, 'cnt'=>5, 'no'=>'No1010'],
19
+ ['type' =>2, 'value'=>10, 'cnt'=>5, 'no'=>'No1011'],
20
+ ];
21
+
22
+ foreach ($a as $val) {
23
+ $type = $val['type'];
24
+ $value = $val['value'];
25
+ $cnt = $val['cnt'];
26
+ $no = $val['no'];
27
+ if(isset($tmp[$type.'_'.$value.'_'.$cnt])){
28
+ $tmp[$type.'_'.$value.'_'.$cnt] = $tmp[$type.'_'.$value.'_'.$cnt].', '.$no;
29
+ }else{
30
+ $tmp[$type.'_'.$value.'_'.$cnt] = $no;
31
+ }
32
+ }
33
+ foreach ($tmp as $key => $nolist) {
34
+ list($type, $value, $cnt) = explode('_', $key);
35
+ $result[] = ['type' => $type, 'value'=> $value, 'cnt'=> $cnt, 'nolist'=> $nolist];
36
+ }
37
+ var_dump($result);
38
+ ```