回答編集履歴
4
追記
answer
CHANGED
@@ -133,4 +133,28 @@
|
|
133
133
|
|
134
134
|
となります。
|
135
135
|
|
136
|
-
`$array`配列の持つ、キー("ID", "title")に対する値(7, "多次元配列の扱い")をそれぞれ対応させて持ってきてくれるわけですね。
|
136
|
+
`$array`配列の持つ、キー("ID", "title")に対する値(7, "多次元配列の扱い")をそれぞれ対応させて持ってきてくれるわけですね。
|
137
|
+
|
138
|
+
|
139
|
+
> そうだとした場合、
|
140
|
+
> 「$first_key => $first_val」は$arrayの中に入ってるキーが0番目の値が
|
141
|
+
> array('ID'=>7, 'title'=>'多次元配列の扱い')の配列、
|
142
|
+
> ということでしょうか...?
|
143
|
+
|
144
|
+
その通りです!
|
145
|
+
|
146
|
+
|
147
|
+
> 一回目のforeachで$first_valがarray('ID'=>7, 'title'=>'多次元配列の扱い')になるとします。
|
148
|
+
> ということは、foreachの中にforeachがあるということなので、
|
149
|
+
> 「$second_key => $second_val」はキーがidの7を出力し、次にキーが'title'の'多次元配列の扱い
|
150
|
+
> を出力し、
|
151
|
+
> そして一回目のforeachに戻り次は$arrayのキーが1、値がarray('ID'=>6, 'title'=>'画像圧縮と軽量化のすすめ')を実行し、
|
152
|
+
> 2回目のforeachを実行し~というのを繰り替えしていく形になりますでしょうか...?
|
153
|
+
|
154
|
+
完璧ですね。
|
155
|
+
その通りです!
|
156
|
+
|
157
|
+
蛇足ですが、キーが不要な場合は、
|
158
|
+
`foreach ($array as $value) `
|
159
|
+
のようにかけたりもします。
|
160
|
+
|
3
追記2を追加
answer
CHANGED
@@ -82,4 +82,55 @@
|
|
82
82
|
</html>
|
83
83
|
|
84
84
|
|
85
|
-
```
|
85
|
+
```
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
# 追記2
|
92
|
+
> 一回目のforeach文,
|
93
|
+
> foreach ($array as $first_key => $first_val)このキーの部分は例えばなんですが、
|
94
|
+
> $first_key[0]としなくても、自動で$arrayの0番目の配列が選択されるということでしょうか?
|
95
|
+
|
96
|
+
大凡そのとおりです!
|
97
|
+
|
98
|
+
foreachは、配列の中身を`キー`と`値`に分解してくれる、と私は書きました。
|
99
|
+
その意味を深掘りしていきます。
|
100
|
+
|
101
|
+
例えば、ただひとつの配列、
|
102
|
+
`$array = array('ID'=>7, 'title'=>'多次元配列の扱い');`
|
103
|
+
があったとします。
|
104
|
+
|
105
|
+
この中身って、
|
106
|
+
|
107
|
+
```
|
108
|
+
{
|
109
|
+
["ID"]=> int(7)
|
110
|
+
["title"]=> string(24) "多次元配列の扱い"
|
111
|
+
}
|
112
|
+
```
|
113
|
+
|
114
|
+
ですよね?
|
115
|
+
|
116
|
+
では、こいつをforeachで回してやるとどうなるか?
|
117
|
+
|
118
|
+
先に参考コードを提示します。
|
119
|
+
|
120
|
+
```
|
121
|
+
<?php
|
122
|
+
$array = array('ID'=>7, 'title'=>'多次元配列の扱い');
|
123
|
+
|
124
|
+
foreach ($array as $key => $value) {
|
125
|
+
printf('キー:%s, 値:%s<br>', $key, $value);
|
126
|
+
}
|
127
|
+
|
128
|
+
```
|
129
|
+
|
130
|
+
|
131
|
+
1回目のループ → $key:"ID"、$value:7
|
132
|
+
2回目のループ → $key:"title"、$value:"多次元配列の扱い"
|
133
|
+
|
134
|
+
となります。
|
135
|
+
|
136
|
+
`$array`配列の持つ、キー("ID", "title")に対する値(7, "多次元配列の扱い")をそれぞれ対応させて持ってきてくれるわけですね。
|
2
コードをちょっち修正
answer
CHANGED
@@ -71,9 +71,9 @@
|
|
71
71
|
printf('今から展開するのは、key: %s, value: %s<br>', $first_key, $first_val);
|
72
72
|
|
73
73
|
foreach ($first_val as $second_key => $second_val) {
|
74
|
-
printf('key: %s, value: %s<br>', $second_key, $second_val);
|
74
|
+
printf('$first_valの中身は、key: %s, value: %s<br>', $second_key, $second_val);
|
75
75
|
}
|
76
|
-
|
76
|
+
|
77
77
|
echo '<hr>';
|
78
78
|
}
|
79
79
|
|
@@ -81,4 +81,5 @@
|
|
81
81
|
</body>
|
82
82
|
</html>
|
83
83
|
|
84
|
+
|
84
85
|
```
|
1
追記コード追加
answer
CHANGED
@@ -45,4 +45,40 @@
|
|
45
45
|
|
46
46
|
例えば今回の、`'ID'=>7, 'title'=>'多次元配列の扱い'`であれば、
|
47
47
|
1回目のループでのキーは`ID`、値は`7`、
|
48
|
-
2回目のループでのキーは`title`、値は`多次元配列の扱い`となります。
|
48
|
+
2回目のループでのキーは`title`、値は`多次元配列の扱い`となります。
|
49
|
+
|
50
|
+
|
51
|
+
|
52
|
+
# 追記
|
53
|
+
```
|
54
|
+
<?php
|
55
|
+
$array[] = array('ID'=>7, 'title'=>'多次元配列の扱い');
|
56
|
+
$array[] = array('ID'=>6, 'title'=>'画像圧縮と軽量化のすすめ');
|
57
|
+
$array[] = array('ID'=>5, 'title'=>'初心者のためのgitコマンド');
|
58
|
+
?>
|
59
|
+
|
60
|
+
|
61
|
+
|
62
|
+
<!DOCTYPE html>
|
63
|
+
<html lang="ja">
|
64
|
+
<head>
|
65
|
+
<meta charset="UTF-8">
|
66
|
+
<title></title>
|
67
|
+
</head>
|
68
|
+
<body>
|
69
|
+
<?php
|
70
|
+
foreach ($array as $first_key => $first_val) {
|
71
|
+
printf('今から展開するのは、key: %s, value: %s<br>', $first_key, $first_val);
|
72
|
+
|
73
|
+
foreach ($first_val as $second_key => $second_val) {
|
74
|
+
printf('key: %s, value: %s<br>', $second_key, $second_val);
|
75
|
+
}
|
76
|
+
|
77
|
+
echo '<hr>';
|
78
|
+
}
|
79
|
+
|
80
|
+
?>
|
81
|
+
</body>
|
82
|
+
</html>
|
83
|
+
|
84
|
+
```
|