質問編集履歴

6

誤字脱字の修正をしました。

2020/11/11 02:35

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -24,13 +24,15 @@
24
24
 
25
25
  **【変数の役割一覧】**
26
26
 
27
- gtNum:会員番号
27
+ gtNum:会員番号(blogID:1)
28
28
 
29
29
  class:所属
30
30
 
31
31
  name:氏名
32
32
 
33
33
  pos:役職
34
+
35
+ ctNum:会員番号(blogID:18)
34
36
 
35
37
  MMpt:月間獲得ポイント
36
38
 
@@ -54,9 +56,13 @@
54
56
 
55
57
 
56
58
 
57
- **【$pLrows[行]:会員番号だけを抽出し配列】**
59
+ **【$pLrows[行]:会員番号だけを抽出し、blogID:18の会員番号別集計に用いる配列】**
58
60
 
59
- |gtNum($key:行)|ctNum|
61
+ |gtNum|ctNum|
62
+
63
+
64
+
65
+ ※blogID:1のデータをもとに取得した会員番号リストをblogID:18のデータと照合・結合するための下準備のために定義しています。
60
66
 
61
67
 
62
68
 

5

「やりたいこと」について、わかりやすくするための説明を補足しました。

2020/11/11 02:35

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -16,141 +16,97 @@
16
16
 
17
17
  ### 該当のソースコード
18
18
 
19
- (1)メインの配列
19
+ - ソースコード固定ページ用テンプレート)を[Google Drive](https://drive.google.com/file/d/1-y9HqALFPd9cQnfU5S8bZ0NwkR5Q6kxd/view?usp=sharing)に設置しました。
20
+
21
+
20
22
 
21
23
  ---
22
24
 
25
+ **【変数の役割一覧】**
26
+
23
- 【出力したテーブル】
27
+ gtNum:会員番号
28
+
29
+ class:所属
30
+
31
+ name:氏名
32
+
33
+ pos:役職
34
+
35
+ MMpt:月間獲得ポイント
36
+
37
+ MMpz:月間獲得賞金
38
+
39
+ YYpt:年間獲得ポイント
40
+
41
+ YYpz:年間獲得賞金
42
+
43
+ ---
44
+
45
+
46
+
47
+ **【$cLrows[行]:会員名簿としてから読み込んだ配列】**
24
48
 
25
49
  |gtNum|class|name|pos|
26
50
 
27
- ```php
28
51
 
29
- $mm_query = new WP_Query($args);
30
52
 
31
- while ( $mm_query->have_posts() ) :
53
+  ▼ ▼ ▼ ▼ ▼
32
54
 
33
- $mm_query->the_post();
34
55
 
35
- $cLrows[$gtNum] = array(
36
56
 
37
- 'class' => $gtClass,
57
+ **【$pLrows[行]:会員番号だけを抽出した配列】**
38
58
 
39
- 'name' => $gtName,
59
+ |gtNum($key:行)|ctNum
40
60
 
41
- 'pos' => $gtPost
42
61
 
43
- );
44
62
 
45
- endwhile;
63
+  ▼ ▼ ▼ ▼ ▼
46
64
 
47
- ```
48
65
 
49
- (2)結合したい配列
50
66
 
51
- ---
52
-
53
- 【出したテーブル
67
+ **$resMrows[行]:会員番号ごとの獲得ポイント・賞金の合計を抽出した配列**
54
68
 
55
69
  |ctNum|MMpt|MMpz|YYpt|YYpz|
56
70
 
57
- ```php
58
71
 
59
- $mm_query = new WP_Query($args);
60
72
 
61
- while ( $mm_query->have_posts() ) :
62
-
63
- $mm_query->the_post();
64
-
65
- $resMrows[$ctNum] = array(
66
-
67
-   'MMpt' => $gtMMpt,
68
-
69
-   'MMpz' => $gtMMpz,
70
-
71
-   'YYpt' => $gtYYpt,
72
-
73
-   'YYpz' => $gtYYpz
74
-
75
- );
76
-
77
- endwhile;
73
+  ▽ ▽ ▽ ▽ ▽
78
-
79
- ```
80
-
81
- **【結合するための条件】**
82
-
83
- ```
84
-
85
- $gtNum == $ctNum;
86
-
87
- ```
88
74
 
89
75
 
90
76
 
91
- **【結合後の配列】**
77
+ **【$res[行]:会員名簿と月間・年間の獲得ポイント・賞金の集計果を結した配列】**
92
78
 
93
- 【出力したいテーブル】
79
+ $key? = 会員番号( gtNum or ctNum )
94
80
 
81
+
82
+
83
+ 結合先:$cLrows(|class|name|pos|) 
84
+
95
- |gtNum|class|name|pos|MMpt|MMpz|YYpt|YYpz|
85
+ 結合元:$resMrows|MMpt|MMpz|YYpt|YYpz|
86
+
87
+
88
+
89
+ → → → やりたいことをどう伝えたらよいかわからず、意味合的な事を完結にまとめると、こんな感じ?になるのでしょうか。(クエスチョンマークは、”でいいかわからない”という意味で使っています。)
96
90
 
97
91
  ```php
98
92
 
99
- $mm_query = new WP_Query($args);
93
+ foreach(会員番号?行番号?){
100
94
 
101
- while ( $mm_query->have_posts() ) :
95
+   array(
102
96
 
103
- $mm_query->the_post();
97
+       [会員番号?行番号?],
104
98
 
105
- $res[$gtNum] = array(
99
+         array(
106
100
 
107
- 'class' => $gtClass,
101
+             $res[会員番号?] = join($cLrows,$resMrows);
108
102
 
109
- 'name' => $gtName,
103
+         )
110
104
 
111
- 'pos' => $gtPost,
105
+      );
112
106
 
113
- 'MMpt' => $gtMMpt,
114
-
115
- 'MMpz' => $gtMMpz,
116
-
117
- 'YYpt' => $gtYYpt,
118
-
119
- 'YYpz' => $gtYYpz
120
-
121
- );
107
+ }
122
-
123
- endwhile;
124
108
 
125
109
  ```
126
-
127
- ### 試したこと
128
-
129
-
130
-
131
- - 配列の結合方法自体初めてで、SQL文でいうところの```JOIN```を使うのかと思い、やってみましたがうまくいかず、```array_merge```や```array_merge_recursive```もうまくいきませんでした。
132
-
133
-
134
-
135
- - 試しにこんな感じかなぁと思って作ったコードです。
136
-
137
- ```PHP
138
-
139
- $res = [];
140
-
141
- foreach( $cLrows as $rows ){
142
-
143
- foreach( $rows as $key => $value ){
144
-
145
- $res[$key] = array_merge( $cLrows[$value] , $resMrows[$value] );
146
-
147
- }
148
-
149
- }
150
-
151
- ```
152
-
153
-
154
110
 
155
111
  ### 補足情報
156
112
 

4

試してみたコードを追加しました。

2020/11/11 02:26

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -132,6 +132,26 @@
132
132
 
133
133
 
134
134
 
135
+ - 試しにこんな感じかなぁと思って作ったコードです。
136
+
137
+ ```PHP
138
+
139
+ $res = [];
140
+
141
+ foreach( $cLrows as $rows ){
142
+
143
+ foreach( $rows as $key => $value ){
144
+
145
+ $res[$key] = array_merge( $cLrows[$value] , $resMrows[$value] );
146
+
147
+ }
148
+
149
+ }
150
+
151
+ ```
152
+
153
+
154
+
135
155
  ### 補足情報
136
156
 
137
157
  サーバーやワードプレスの関連情報は次の通りです。

3

出力に関するテーブル構造を追記しました。

2020/11/10 08:08

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -10,9 +10,19 @@
10
10
 
11
11
 
12
12
 
13
+
14
+
15
+
16
+
13
17
  ### 該当のソースコード
14
18
 
15
19
  (1)メインの配列
20
+
21
+ ---
22
+
23
+ 【出力したテーブル】
24
+
25
+ |gtNum|class|name|pos|
16
26
 
17
27
  ```php
18
28
 
@@ -37,6 +47,12 @@
37
47
  ```
38
48
 
39
49
  (2)結合したい配列
50
+
51
+ ---
52
+
53
+ 【出力したテーブル】
54
+
55
+ |ctNum|MMpt|MMpz|YYpt|YYpz|
40
56
 
41
57
  ```php
42
58
 
@@ -73,6 +89,10 @@
73
89
 
74
90
 
75
91
  **【結合後の配列】**
92
+
93
+ 【出力したいテーブル】
94
+
95
+ |gtNum|class|name|pos|MMpt|MMpz|YYpt|YYpz|
76
96
 
77
97
  ```php
78
98
 

2

該当コードを修正しました。(それぞれのコードは全投稿のループ処理の中にあります。)

2020/11/10 07:41

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -16,6 +16,12 @@
16
16
 
17
17
  ```php
18
18
 
19
+ $mm_query = new WP_Query($args);
20
+
21
+ while ( $mm_query->have_posts() ) :
22
+
23
+ $mm_query->the_post();
24
+
19
25
  $cLrows[$gtNum] = array(
20
26
 
21
27
  'class' => $gtClass,
@@ -26,15 +32,21 @@
26
32
 
27
33
  );
28
34
 
35
+ endwhile;
36
+
29
37
  ```
30
38
 
31
39
  (2)結合したい配列
32
40
 
33
41
  ```php
34
42
 
35
- $resMrows[] = array(
43
+ $mm_query = new WP_Query($args);
36
44
 
37
-   'cnum' => $ss,
45
+ while ( $mm_query->have_posts() ) :
46
+
47
+ $mm_query->the_post();
48
+
49
+ $resMrows[$ctNum] = array(
38
50
 
39
51
    'MMpt' => $gtMMpt,
40
52
 
@@ -45,6 +57,8 @@
45
57
    'YYpz' => $gtYYpz
46
58
 
47
59
  );
60
+
61
+ endwhile;
48
62
 
49
63
  ```
50
64
 
@@ -62,6 +76,12 @@
62
76
 
63
77
  ```php
64
78
 
79
+ $mm_query = new WP_Query($args);
80
+
81
+ while ( $mm_query->have_posts() ) :
82
+
83
+ $mm_query->the_post();
84
+
65
85
  $res[$gtNum] = array(
66
86
 
67
87
  'class' => $gtClass,
@@ -77,6 +97,10 @@
77
97
  'YYpt' => $gtYYpt,
78
98
 
79
99
  'YYpz' => $gtYYpz
100
+
101
+ );
102
+
103
+ endwhile;
80
104
 
81
105
  ```
82
106
 

1

結合したい配列の内容を変更しました。

2020/11/10 07:35

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -32,7 +32,9 @@
32
32
 
33
33
  ```php
34
34
 
35
- $resMrows[$ctNum] = array(
35
+ $resMrows[] = array(
36
+
37
+   'cnum' => $ss,
36
38
 
37
39
    'MMpt' => $gtMMpt,
38
40