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

回答編集履歴

2

chuosei

2020/11/14 14:49

投稿

yambejp
yambejp

スコア117967

answer CHANGED
@@ -51,12 +51,15 @@
51
51
  "sum"=>"23",
52
52
  ],
53
53
  ];
54
+ $per=4;//ホントは12とかになる?
54
55
  $new=array_map(function($x) use($datas){
55
56
  return array_map(function($y) use($x){
56
57
  return array_merge([$y],array_map(function($z) use($y){
57
58
  return $z[$y];
58
59
  },$x));
59
60
  },array_keys($datas[0]));
60
- },array_chunk($datas,4));
61
+ },array_chunk($datas,$per));
61
62
  print_r($new);
62
- ```
63
+ ```
64
+
65
+ ※一部補足をいれました補足

1

sample

2020/11/14 14:49

投稿

yambejp
yambejp

スコア117967

answer CHANGED
@@ -1,1 +1,62 @@
1
- 2018と2019を別の配列に切り分けて、縦軸と横軸を入れ替えてから処理すると良いでしょう
1
+ 2018と2019を別の配列に切り分けて、縦軸と横軸を入れ替えてから処理すると良いでしょう
2
+ # sample
3
+ ```PHP
4
+ $datas=[
5
+ [
6
+ "m"=>"2018-01",
7
+ "am"=>"10",
8
+ "pm"=>"20",
9
+ "sum"=>"30",
10
+ ],
11
+ [
12
+ "m"=>"2018-02",
13
+ "am"=>"11",
14
+ "pm"=>"21",
15
+ "sum"=>"32",
16
+ ],
17
+ [
18
+ "m"=>"2018-11",
19
+ "am"=>"15",
20
+ "pm"=>"16",
21
+ "sum"=>"31",
22
+ ],
23
+ [
24
+ "m"=>"2018-12",
25
+ "am"=>"18",
26
+ "pm"=>"20",
27
+ "sum"=>"38",
28
+ ],
29
+ [
30
+ "m"=>"2019-01",
31
+ "am"=>"12",
32
+ "pm"=>"15",
33
+ "sum"=>"27",
34
+ ],
35
+ [
36
+ "m"=>"2019-02",
37
+ "am"=>"14",
38
+ "pm"=>"15",
39
+ "sum"=>"29",
40
+ ],
41
+ [
42
+ "m"=>"2019-11",
43
+ "am"=>"10",
44
+ "pm"=>"14",
45
+ "sum"=>"24",
46
+ ],
47
+ [
48
+ "m"=>"2019-12",
49
+ "am"=>"18",
50
+ "pm"=>"15",
51
+ "sum"=>"23",
52
+ ],
53
+ ];
54
+ $new=array_map(function($x) use($datas){
55
+ return array_map(function($y) use($x){
56
+ return array_merge([$y],array_map(function($z) use($y){
57
+ return $z[$y];
58
+ },$x));
59
+ },array_keys($datas[0]));
60
+ },array_chunk($datas,4));
61
+ print_r($new);
62
+ ```