回答編集履歴

4

追記

2017/07/16 09:27

投稿

nnahito
nnahito

スコア2004

test CHANGED
@@ -269,3 +269,53 @@
269
269
 
270
270
 
271
271
  `$array`配列の持つ、キー("ID", "title")に対する値(7, "多次元配列の扱い")をそれぞれ対応させて持ってきてくれるわけですね。
272
+
273
+
274
+
275
+
276
+
277
+ > そうだとした場合、
278
+
279
+ > 「$first_key => $first_val」は$arrayの中に入ってるキーが0番目の値が
280
+
281
+ > array('ID'=>7, 'title'=>'多次元配列の扱い')の配列、
282
+
283
+ > ということでしょうか...?
284
+
285
+
286
+
287
+ その通りです!
288
+
289
+
290
+
291
+
292
+
293
+ > 一回目のforeachで$first_valがarray('ID'=>7, 'title'=>'多次元配列の扱い')になるとします。
294
+
295
+ > ということは、foreachの中にforeachがあるということなので、
296
+
297
+ > 「$second_key => $second_val」はキーがidの7を出力し、次にキーが'title'の'多次元配列の扱い
298
+
299
+ > を出力し、
300
+
301
+ > そして一回目のforeachに戻り次は$arrayのキーが1、値がarray('ID'=>6, 'title'=>'画像圧縮と軽量化のすすめ')を実行し、
302
+
303
+ > 2回目のforeachを実行し~というのを繰り替えしていく形になりますでしょうか...?
304
+
305
+
306
+
307
+ 完璧ですね。
308
+
309
+ その通りです!
310
+
311
+
312
+
313
+ 蛇足ですが、キーが不要な場合は、
314
+
315
+ `foreach ($array as $value) `
316
+
317
+ のようにかけたりもします。
318
+
319
+
320
+
321
+

3

追記2を追加

2017/07/16 09:27

投稿

nnahito
nnahito

スコア2004

test CHANGED
@@ -167,3 +167,105 @@
167
167
 
168
168
 
169
169
  ```
170
+
171
+
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+
180
+
181
+ # 追記2
182
+
183
+ > 一回目のforeach文,
184
+
185
+ > foreach ($array as $first_key => $first_val)このキーの部分は例えばなんですが、
186
+
187
+ > $first_key[0]としなくても、自動で$arrayの0番目の配列が選択されるということでしょうか?
188
+
189
+
190
+
191
+ 大凡そのとおりです!
192
+
193
+
194
+
195
+ foreachは、配列の中身を`キー`と`値`に分解してくれる、と私は書きました。
196
+
197
+ その意味を深掘りしていきます。
198
+
199
+
200
+
201
+ 例えば、ただひとつの配列、
202
+
203
+ `$array = array('ID'=>7, 'title'=>'多次元配列の扱い');`
204
+
205
+ があったとします。
206
+
207
+
208
+
209
+ この中身って、
210
+
211
+
212
+
213
+ ```
214
+
215
+ {
216
+
217
+ ["ID"]=> int(7)
218
+
219
+ ["title"]=> string(24) "多次元配列の扱い"
220
+
221
+ }
222
+
223
+ ```
224
+
225
+
226
+
227
+ ですよね?
228
+
229
+
230
+
231
+ では、こいつをforeachで回してやるとどうなるか?
232
+
233
+
234
+
235
+ 先に参考コードを提示します。
236
+
237
+
238
+
239
+ ```
240
+
241
+ <?php
242
+
243
+ $array = array('ID'=>7, 'title'=>'多次元配列の扱い');
244
+
245
+
246
+
247
+ foreach ($array as $key => $value) {
248
+
249
+ printf('キー:%s, 値:%s<br>', $key, $value);
250
+
251
+ }
252
+
253
+
254
+
255
+ ```
256
+
257
+
258
+
259
+
260
+
261
+ 1回目のループ → $key:"ID"、$value:7
262
+
263
+ 2回目のループ → $key:"title"、$value:"多次元配列の扱い"
264
+
265
+
266
+
267
+ となります。
268
+
269
+
270
+
271
+ `$array`配列の持つ、キー("ID", "title")に対する値(7, "多次元配列の扱い")をそれぞれ対応させて持ってきてくれるわけですね。

2

コードをちょっち修正

2017/07/16 09:23

投稿

nnahito
nnahito

スコア2004

test CHANGED
@@ -144,11 +144,11 @@
144
144
 
145
145
  foreach ($first_val as $second_key => $second_val) {
146
146
 
147
- printf('key: %s, value: %s<br>', $second_key, $second_val);
147
+ printf('$first_valの中身は、key: %s, value: %s<br>', $second_key, $second_val);
148
148
 
149
149
  }
150
150
 
151
-
151
+
152
152
 
153
153
  echo '<hr>';
154
154
 
@@ -164,4 +164,6 @@
164
164
 
165
165
 
166
166
 
167
+
168
+
167
169
  ```

1

追記コード追加

2017/07/16 07:56

投稿

nnahito
nnahito

スコア2004

test CHANGED
@@ -93,3 +93,75 @@
93
93
  1回目のループでのキーは`ID`、値は`7`、
94
94
 
95
95
  2回目のループでのキーは`title`、値は`多次元配列の扱い`となります。
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+ # 追記
104
+
105
+ ```
106
+
107
+ <?php
108
+
109
+ $array[] = array('ID'=>7, 'title'=>'多次元配列の扱い');
110
+
111
+ $array[] = array('ID'=>6, 'title'=>'画像圧縮と軽量化のすすめ');
112
+
113
+ $array[] = array('ID'=>5, 'title'=>'初心者のためのgitコマンド');
114
+
115
+ ?>
116
+
117
+
118
+
119
+
120
+
121
+
122
+
123
+ <!DOCTYPE html>
124
+
125
+ <html lang="ja">
126
+
127
+ <head>
128
+
129
+ <meta charset="UTF-8">
130
+
131
+ <title></title>
132
+
133
+ </head>
134
+
135
+ <body>
136
+
137
+ <?php
138
+
139
+ foreach ($array as $first_key => $first_val) {
140
+
141
+ printf('今から展開するのは、key: %s, value: %s<br>', $first_key, $first_val);
142
+
143
+
144
+
145
+ foreach ($first_val as $second_key => $second_val) {
146
+
147
+ printf('key: %s, value: %s<br>', $second_key, $second_val);
148
+
149
+ }
150
+
151
+
152
+
153
+ echo '<hr>';
154
+
155
+ }
156
+
157
+
158
+
159
+ ?>
160
+
161
+ </body>
162
+
163
+ </html>
164
+
165
+
166
+
167
+ ```