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

質問編集履歴

2

weeklyが競合していたため、monthlyに書き換え

2020/12/16 09:27

投稿

kousatumajin
kousatumajin

スコア25

title CHANGED
File without changes
body CHANGED
@@ -45,7 +45,7 @@
45
45
  ),
46
46
 
47
47
  //月間ランキング
48
- 'weekly' =>
48
+ 'monthly' =>
49
49
  array (
50
50
  0 =>
51
51
  array (

1

・var_dumpからvar_exportの表記に直しました。また、試したコードとその結果に関して記述しました。

2020/12/16 09:27

投稿

kousatumajin
kousatumajin

スコア25

title CHANGED
File without changes
body CHANGED
@@ -2,72 +2,66 @@
2
2
  日間、週間、月間でランキングを作る上で、以下のような配列があります。
3
3
  ※実物ではなくあくまで実物に似せた一例で、実物のデータはそれぞれ10件です。
4
4
  ```
5
+ var_export($newslist);
6
+
7
+
5
- array(3) {
8
+ array() {
6
9
  //日刊ランキング
7
- ["daily"]=>
10
+ 'daily' =>
8
- array(3) {
11
+ array (
9
- [0]=>
12
+ 0 =>
10
- array(3) {
13
+ array (
11
- ["id"]=>
12
- string(6) "746692"
14
+ 'storyid' => '87231',
13
- ["title"]=>
14
- string(81) "ランキングその1"
15
+ 'title' => 'ランキングテスト1',
16
+ ),
15
- [1]=>
17
+ 1 =>
16
- array(3) {
18
+ array (
17
- ["id"]=>
18
- string(6) "746693"
19
+ 'storyid' => '87232',
19
- ["title"]=>
20
- string(81) "ランキングその2"
20
+ 'title' => 'ランキングテスト2',
21
+ ),
21
- [2]=>
22
+ 2 =>
22
- array(3) {
23
+ array (
23
- ["id"]=>
24
- string(6) "746694"
24
+ 'storyid' => '86707',
25
- ["title"]=>
26
- string(81) "ランキングその3"
25
+ 'title' => 'ランキングテスト3',
26
+ ),
27
27
 
28
28
  //週間ランキング
29
- ["weekly"]=>
29
+ 'weekly' =>
30
- array(3) {
30
+ array (
31
- [0]=>
31
+ 0 =>
32
- array(3) {
32
+ array (
33
- ["id"]=>
34
- string(6) "746692"
33
+ 'storyid' => '87231',
35
- ["title"]=>
36
- string(81) "ランキングその1"
34
+ 'title' => 'ランキングテスト1',
35
+ ),
37
- [1]=>
36
+ 1 =>
38
- array(3) {
37
+ array (
39
- ["id"]=>
40
- string(6) "746693"
38
+ 'storyid' => '87232',
41
- ["title"]=>
42
- string(81) "ランキングその2"
39
+ 'title' => 'ランキングテスト2',
40
+ ),
43
- [2]=>
41
+ 2 =>
44
- array(3) {
42
+ array (
45
- ["id"]=>
46
- string(6) "746694"
43
+ 'storyid' => '86707',
47
- ["title"]=>
48
- string(81) "ランキングその3"
44
+ 'title' => 'ランキングテスト3',
45
+ ),
49
46
 
50
47
  //月間ランキング
51
- ["monthly"]=>
48
+ 'weekly' =>
52
- array(3) {
49
+ array (
53
- [0]=>
50
+ 0 =>
54
- array(3) {
51
+ array (
55
- ["id"]=>
56
- string(6) "746692"
52
+ 'storyid' => '87231',
57
- ["title"]=>
58
- string(81) "ランキングその1"
53
+ 'title' => 'ランキングテスト1',
54
+ ),
59
- [1]=>
55
+ 1 =>
60
- array(3) {
56
+ array (
61
- ["id"]=>
62
- string(6) "746693"
57
+ 'storyid' => '87232',
63
- ["title"]=>
64
- string(81) "ランキングその2"
58
+ 'title' => 'ランキングテスト2',
59
+ ),
65
- [2]=>
60
+ 2 =>
66
- array(3) {
61
+ array (
67
- ["id"]=>
68
- string(6) "746694"
62
+ 'storyid' => '86707',
69
- ["title"]=>
70
- string(81) "ランキングその3"
63
+ 'title' => 'ランキングテスト3',
64
+ ),
71
65
  ```
72
66
 
73
67
  この配列にそれぞれ以下のデータを挿入しようと考えています。
@@ -76,142 +70,107 @@
76
70
 
77
71
  最終的に以下の形にデータを整形したいと考えています。
78
72
  ```
79
- array(3) {
80
- //日間ランキング
81
- ["daily"]=>
82
- array(3) {
83
- [0]=>
84
- array(3) {
85
- ["id"]=>
73
+ var_export($newslist);
86
- string(6) "746692"
87
- ["title"]=>
88
- string(81) "ランキングその1"
89
- ["rank"] =>
90
- int(1)
91
- ["category_tag"]=>
92
- array(1) {
93
- [0]=>
94
- array(2) {
95
- ["name"]=>
96
- string(6) "カテゴリその1"
97
- ["search_key"]=>
98
- string(12) "category1"
99
- }
100
- }
101
-
102
- [1]=>
103
- array(3) {
104
- ["id"]=>
105
- string(6) "746693"
106
- ["title"]=>
107
- string(81) "ランキングその2"
108
- ["rank"] =>
109
- int(2)
110
- ["category_tag"]=>
111
- array(1) {
112
- [0]=>
113
- array(2) {
114
- ["name"]=>
115
- string(6) "カテゴリその2"
116
- ["search_key"]=>
117
- string(12) "category2"
118
- }
119
- }
120
74
 
121
- [2]=>
122
- array(3) {
123
- ["id"]=>
124
- string(6) "746694"
125
- ["title"]=>
126
- string(81) "ランキングその3"
127
- ["rank"] =>
128
- int(3)
129
- ["category_tag"]=>
130
- array(1) {
131
- [0]=>
132
- array(2) {
133
- ["name"]=>
134
- string(6) "カテゴリその3"
135
- ["search_key"]=>
136
- string(12) "category3"
137
- }
138
- }
139
75
 
140
- ////週間ランキング
141
- ["weekly"]=>
142
- array(3) {
76
+ array() {
77
+ //日刊ランキング
78
+ 'daily' =>
79
+ array (
143
- [0]=>
80
+ 0 =>
144
- array(3) {
81
+ array (
145
- ["id"]=>
146
- string(6) "746692"
82
+ 'storyid' => '87231',
147
- ["title"]=>
148
- string(81) "ランキングその1"
83
+ 'title' => 'ランキングテスト1',
149
- ["rank"] =>
84
+ 'rank' => 1,
150
- int(1)
151
- ["category_tag"]=>
85
+ 'category_tag' =>
152
- array(1) {
86
+ array (
153
- [0]=>
87
+ 0 =>
154
- array(2) {
88
+ array (
89
+ 'name' => 'カテゴリ1',
90
+ 'search_key' => 'category1',
91
+ ),
92
+ 1 =>
93
+ array (
94
+ 'name' => 'カテゴリ2',
95
+ 'search_key' => 'category2',
96
+ ),
97
+ 2 =>
98
+ array (
99
+ 'name' => 'カテゴリ3',
100
+ 'search_key' => 'category3',
101
+ ),
102
+ ),
103
+ 1 =>
104
+ array (
105
+ 'storyid' => '87232',
106
+ 'title' => 'ランキングテスト2',
155
- ["name"]=>
107
+ 'rank' => 1,
156
- string(6) "カテゴリその1"
157
- ["search_key"]=>
108
+ 'category_tag' =>
109
+ array (
110
+ 0 =>
111
+ array (
112
+ 'name' => 'カテゴリ1',
158
- string(12) "category1"
113
+ 'search_key' => 'category1',
159
- }
114
+ ),
115
+ 1 =>
116
+ array (
117
+ 'name' => 'カテゴリ2',
118
+ 'search_key' => 'category2',
160
- }
119
+ ),
120
+ 2 =>
121
+ array (
122
+ 'name' => 'カテゴリ3',
123
+ 'search_key' => 'category3',
124
+ ),
125
+ ),
126
+ ),
127
+ 2 =>
128
+ array (
129
+ 'storyid' => '86707',
130
+ 'title' => 'ランキングテスト3',
131
+ 'rank' => 1,
132
+ 'category_tag' =>
133
+ array (
134
+ 0 =>
135
+ array (
136
+ 'name' => 'カテゴリ1',
137
+ 'search_key' => 'category1',
138
+ ),
139
+ 1 =>
140
+ array (
141
+ 'name' => 'カテゴリ2',
142
+ 'search_key' => 'category2',
143
+ ),
144
+ 2 =>
145
+ array (
146
+ 'name' => 'カテゴリ3',
147
+ 'search_key' => 'category3',
148
+ ),
149
+ ),
150
+ ),
161
151
 
162
- [1]=>
163
- array(3) {
164
- ["id"]=>
165
- string(6) "746693"
166
- ["title"]=>
167
- string(81) "ランキングその2"
168
- ["rank"] =>
169
- int(2)
170
- ["category_tag"]=>
171
- array(1) {
172
- [0]=>
173
- array(2) {
174
- ["name"]=>
175
- string(6) "カテゴリその2"
176
- ["search_key"]=>
177
- string(12) "category2"
178
- }
179
- }
180
-
181
- [2]=>
182
- array(3) {
183
- ["id"]=>
184
- string(6) "746694"
185
- ["title"]=>
186
- string(81) "ランキングその3"
187
- ["rank"] =>
188
- int(3)
189
- ["category_tag"]=>
190
- array(1) {
191
- [0]=>
192
- array(2) {
193
- ["name"]=>
194
- string(6) "カテゴリその3"
195
- ["search_key"]=>
196
- string(12) "category3"
197
- }
198
- }
199
-
200
152
 
201
153
 
202
154
 
155
+
203
- (以下月間ランキング)
156
+ 以下週間、月間を省
204
157
  ```
205
158
 
206
- ### 該当のソースコード
159
+ ### 現在のソースコード
207
160
  ```ここに言語を入力
208
- //$newslist一番上でした配列です。
161
+ //$newslist : 一番上で記述したデータが格納された変数
162
+
209
163
  if(!empty($newslist))
210
164
  {
211
165
  foreach($newslist as $newslist_key => $newslist_value){
212
166
  foreach($newslist_value as $k => $v){
167
+                         
168
+             //ランキング順位の情報を追加
213
- $newslist_value[$k]["rank_num"] = $k+1; //ランキング順位
169
+ $newslist_value[$k]["rank_num"] = $k+1;
170
+
171
+             //カテゴリを取得箇所をidから取得
214
- $categories = $dispCat->getCategoryByStoryID($v["storyid"]);//カテゴリ取得箇所
172
+ $categories = $dispCat->getCategoryByStoryID($v["storyid"]);
173
+
215
174
  $newslist_value[$k]["category_tag"] = $categories;
216
175
  }
217
176
  }
@@ -219,6 +178,70 @@
219
178
  ```
220
179
 
221
180
 
181
+ 結果(内容変わらず)
182
+ ```
183
+ var_export($newslist);
184
+
185
+
186
+ array() {
187
+ //日刊ランキング
188
+ 'daily' =>
189
+ array (
190
+ 0 =>
191
+ array (
192
+ 'storyid' => '87231',
193
+ 'title' => 'ランキングテスト1',
194
+ ),
195
+ 1 =>
196
+ array (
197
+ 'storyid' => '87232',
198
+ 'title' => 'ランキングテスト2',
199
+ ),
200
+ 2 =>
201
+ array (
202
+ 'storyid' => '86707',
203
+ 'title' => 'ランキングテスト3',
204
+ ),
205
+
206
+ //週間ランキング
207
+ 'weekly' =>
208
+ array (
209
+ 0 =>
210
+ array (
211
+ 'storyid' => '87231',
212
+ 'title' => 'ランキングテスト1',
213
+ ),
214
+ 1 =>
215
+ array (
216
+ 'storyid' => '87232',
217
+ 'title' => 'ランキングテスト2',
218
+ ),
219
+ 2 =>
220
+ array (
221
+ 'storyid' => '86707',
222
+ 'title' => 'ランキングテスト3',
223
+ ),
224
+
225
+ //月間ランキング
226
+ 'weekly' =>
227
+ array (
228
+ 0 =>
229
+ array (
230
+ 'storyid' => '87231',
231
+ 'title' => 'ランキングテスト1',
232
+ ),
233
+ 1 =>
234
+ array (
235
+ 'storyid' => '87232',
236
+ 'title' => 'ランキングテスト2',
237
+ ),
238
+ 2 =>
239
+ array (
240
+ 'storyid' => '86707',
241
+ 'title' => 'ランキングテスト3',
242
+ ),
243
+ ```
244
+
222
245
  ### 自分で調べたことや試したこと
223
246
  ・ランキング順位や、カテゴリの取得は既にできています。
224
247