質問編集履歴
3
試してみたforeeachのよる繰り返し処理の追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -165,7 +165,7 @@
|
|
165
165
|
|
166
166
|
### 試したこと
|
167
167
|
|
168
|
-
['Items']の後の整数が入っいている[]に$iを渡し、for文による繰り返し構文で$iに1〜20までの数字を渡したのですが、最初のURL
|
168
|
+
['Items']の後の整数が入っいている[]に$iを渡し、for文による繰り返し構文で$iに1〜20までの数字を渡したのですが、最初のURL以降は取得できませんでした。
|
169
169
|
for文が機能していないのではと、「echo $i」も行いましたが、こちらは正常に1〜20を出力しました。
|
170
170
|
```PHP
|
171
171
|
for($i=0; $i<20; $i++;) {
|
@@ -173,6 +173,25 @@
|
|
173
173
|
echo $i;
|
174
174
|
}
|
175
175
|
```
|
176
|
+
foreachによる繰り返し処理も試しましたが、うまくいきませんでした。試したコードは下記です。
|
177
|
+
```PHP
|
178
|
+
foreach($arr['Items'] as $value){
|
179
|
+
print($key);
|
180
|
+
print($value);
|
181
|
+
}
|
182
|
+
```
|
183
|
+
結果
|
184
|
+
ArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArray
|
176
185
|
|
186
|
+
|
187
|
+
```PHP
|
188
|
+
foreach($arr['Items'] as $key => $value){
|
189
|
+
print($key);
|
190
|
+
print($value);
|
191
|
+
}
|
192
|
+
```
|
193
|
+
結果
|
194
|
+
0Array1Array2Array3Array4Array5Array6Array7Array8Array9Array10Array11Array12Array13Array..........
|
195
|
+
|
177
196
|
### その他やりたいこと
|
178
197
|
もしできれば、affiliateURL以外の値も取得したいのでその方法と、上記のコードでは「print」で出力していますが、実際の環境では変数に置くなどして,htmlとcssで整形もしていきたいので、その方法まで教えていただけると幸いです。
|
2
楽天APIの公式ドキュメントを追加しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
楽天APIを使い、商品検索して帰ってきた値を取得したいのですが、PHPのjson_decodeで配列化したjsonデータからfor分などの繰り返し処理でデータを取りたいです。
|
3
3
|
|
4
|
-
### 発生している問題
|
4
|
+
### 発生している問題
|
5
5
|
for文で値を取ろうとすると失敗する。エラーコードはなく、一つ目以降出力がされなかった。
|
6
6
|
|
7
|
+
### 公式ドキュメント
|
8
|
+
https://webservice.rakuten.co.jp/api/ichibaitemsearch/#requestURL
|
7
9
|
|
8
10
|
### 該当のソースコード
|
9
11
|
|
1
実際に書いたfor文と出力された配列の一部を追記しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -19,11 +19,158 @@
|
|
19
19
|
print($arr['Items'][6]['Item']['affiliateUrl'].'<br><br>');
|
20
20
|
print($arr['Items'][7]['Item']['affiliateUrl'].'<br><br>');
|
21
21
|
```
|
22
|
+
下はvar_damp($arr)によって出力された配列です。
|
23
|
+
```PHP
|
24
|
+
array(10) {
|
25
|
+
["Items"]=>
|
26
|
+
array(30) {
|
27
|
+
[0]=>
|
28
|
+
array(1) {
|
29
|
+
["Item"]=>
|
30
|
+
array(35) {
|
31
|
+
["mediumImageUrls"]=>
|
32
|
+
array(3) {
|
33
|
+
[0]=>
|
34
|
+
array(1) {
|
35
|
+
["imageUrl"]=>
|
36
|
+
string(100) "https://thumbnail.image.rakuten.co.jp/@0_mall/eikoshop11/cabinet/zg0982020/zg098-01n.jpg?_ex=128x128"
|
37
|
+
}
|
38
|
+
[1]=>
|
39
|
+
array(1) {
|
40
|
+
["imageUrl"]=>
|
41
|
+
string(99) "https://thumbnail.image.rakuten.co.jp/@0_mall/eikoshop11/cabinet/zg0982020/zg098-02.jpg?_ex=128x128"
|
42
|
+
}
|
43
|
+
[2]=>
|
44
|
+
array(1) {
|
45
|
+
["imageUrl"]=>
|
46
|
+
string(101) "https://thumbnail.image.rakuten.co.jp/@0_mall/eikoshop11/cabinet/zg0982020/zg098-03-1.jpg?_ex=128x128"
|
47
|
+
}
|
48
|
+
}
|
49
|
+
["pointRate"]=>
|
50
|
+
int(1)
|
51
|
+
["shopOfTheYearFlag"]=>
|
52
|
+
int(0)
|
53
|
+
["affiliateRate"]=>
|
54
|
+
int(2)
|
55
|
+
["shipOverseasFlag"]=>
|
56
|
+
int(0)
|
57
|
+
["asurakuFlag"]=>
|
58
|
+
int(1)
|
59
|
+
["endTime"]=>
|
60
|
+
string(0) ""
|
61
|
+
["taxFlag"]=>
|
62
|
+
int(0)
|
63
|
+
["startTime"]=>
|
64
|
+
string(0) ""
|
65
|
+
["itemCaption"]=>
|
66
|
+
string(1915) "商品名 送料無料モバイルバッテリー大容量10000mAh iPhone&Android両方対応極薄軽量ケーブル内蔵型6色iPhone8 iPhoneX iPhone7 Plus アイフォン7 iPhone6 plus iPhone6 iPhone6s plus iPhone5 SE携帯充電器4台同時充電可能 特徴 バッテリー容量:10000mAh 出力電圧:DC5V/2.4A 入力電圧:DC5V/2A 重量:210g サイズ:135*70*128mm 適応機器:iPhone8 iPhoneX iPhone7 iPhone6/6S/plus iPad Andriod機種など 充電回数:3.5回 付属品ケーブル カラー カラー:6色(グレー、ゴールド、ホワイト、ピング、ブルー、ブラック) 生産国 中国 ●2019年4月1日Type-C内臓ケーブルを追加いたしました。エクスペリアType-Bに対応しておりません。 ご注意 ●商品の色見はご覧のパソコンの環境により、実物と多少異なって見える場合がございますのでご了承ください。 ●ご注文いただきました商品であっても品切れの場合がございますのでご了承ください。その場合はメールにておしらせいたします。 ●ポーチは色落ち可能性ございますので、ご使用の際はご注意ください。尚、サービスポーチついての色落ち等の対応はしておりません。モバイルバッテリー 10000mAh大容量 極薄軽量 6色 バッテリー容量:10000mAh 出力電圧:DC5V/2.4A 入力電圧:DC5V/2A 重量:210g カラー:6色(グレー、ゴールド、ホワイト、ピング、ブルー、ブラック) サイズ:135*70*128mm 適応機器:iPhone8 iPhoneX iPhone7 iPhone6/6S/plus iPhone5/SE ipad Andriod機種など 充電回数:3.5回 付属品:ケーブル ●2019年4月1日Type-C内臓ケーブルを追加いたしました。 同梱おすすめ 同梱おすすめ 1280円(税込/送料無料) 1,480円(税込/送料無料)"
|
67
|
+
["catchcopy"]=>
|
68
|
+
string(93) "防災 ギフトiPhone&Android&Typec対応 2.4A 登山 キャンプ 外出 機内持ち込み"
|
69
|
+
["tagIds"]=>
|
70
|
+
array(10) {
|
71
|
+
[0]=>
|
72
|
+
int(1000873)
|
73
|
+
[1]=>
|
74
|
+
int(1000876)
|
75
|
+
[2]=>
|
76
|
+
int(1000880)
|
77
|
+
[3]=>
|
78
|
+
int(1000881)
|
79
|
+
[4]=>
|
80
|
+
int(1000885)
|
81
|
+
[5]=>
|
82
|
+
int(1000886)
|
83
|
+
[6]=>
|
84
|
+
int(1002891)
|
85
|
+
[7]=>
|
86
|
+
int(1005126)
|
87
|
+
[8]=>
|
88
|
+
int(1016358)
|
89
|
+
[9]=>
|
90
|
+
int(1019017)
|
91
|
+
}
|
92
|
+
["smallImageUrls"]=>
|
93
|
+
array(3) {
|
94
|
+
[0]=>
|
95
|
+
array(1) {
|
96
|
+
["imageUrl"]=>
|
97
|
+
string(98) "https://thumbnail.image.rakuten.co.jp/@0_mall/eikoshop11/cabinet/zg0982020/zg098-01n.jpg?_ex=64x64"
|
98
|
+
}
|
99
|
+
[1]=>
|
100
|
+
array(1) {
|
101
|
+
["imageUrl"]=>
|
102
|
+
string(97) "https://thumbnail.image.rakuten.co.jp/@0_mall/eikoshop11/cabinet/zg0982020/zg098-02.jpg?_ex=64x64"
|
103
|
+
}
|
104
|
+
[2]=>
|
105
|
+
array(1) {
|
106
|
+
["imageUrl"]=>
|
107
|
+
string(99) "https://thumbnail.image.rakuten.co.jp/@0_mall/eikoshop11/cabinet/zg0982020/zg098-03-1.jpg?_ex=64x64"
|
108
|
+
}
|
109
|
+
}
|
110
|
+
["asurakuClosingTime"]=>
|
111
|
+
string(5) "12:00"
|
112
|
+
["imageFlag"]=>
|
113
|
+
int(1)
|
114
|
+
["availability"]=>
|
115
|
+
int(1)
|
116
|
+
["shopAffiliateUrl"]=>
|
117
|
+
string(167) "https://hb.afl.rakuten.co.jp/hgc.........."
|
118
|
+
["itemCode"]=>
|
119
|
+
string(19) "eikoshop11:10000058"
|
120
|
+
["postageFlag"]=>
|
121
|
+
int(0)
|
122
|
+
["itemName"]=>
|
123
|
+
string(314) "【バッテリーポーチプレゼント中&3種類ケーブル内蔵】 モバイルバッテリー 大容量 Typec 充電器ケーブル内蔵型 極薄軽量10000mAhiPhone &Android&Type-Cすべて対応 プレゼントiPhone11 iPhonexs iPhonexsm iPhone8 iPhoneXiPhone7 Plus iPhone64台同時充電可能"
|
124
|
+
["itemPrice"]=>
|
125
|
+
int(1380)
|
126
|
+
["pointRateEndTime"]=>
|
127
|
+
string(0) ""
|
128
|
+
["shopCode"]=>
|
129
|
+
string(10) "eikoshop11"
|
130
|
+
["affiliateUrl"]=>
|
131
|
+
string(191) "https://hb.afl.rakuten.co.jp/hgc............"
|
132
|
+
["giftFlag"]=>
|
133
|
+
int(0)
|
134
|
+
["shopName"]=>
|
135
|
+
string(13) "エイコShop"
|
136
|
+
["reviewCount"]=>
|
137
|
+
int(4969)
|
138
|
+
["asurakuArea"]=>
|
139
|
+
string(385) "群馬県/埼玉県/千葉県/東京都/神奈川県/新潟県/富山県/石川県/福井県/山梨県/青森県/長野県/岐阜県/静岡県/愛知県/三重県/滋賀県/京都府/大阪府/兵庫県/奈良県/岩手県/和歌山県/鳥取県/島根県/岡山県/広島県/山口県/徳島県/香川県/愛媛県/高知県/宮城県/秋田県/山形県/福島県/茨城県/栃木県"
|
140
|
+
["shopUrl"]=>
|
141
|
+
string(167) "https://hb.afl.rakuten.co.jp/hgc............"
|
142
|
+
["creditCardFlag"]=>
|
143
|
+
int(1)
|
144
|
+
["reviewAverage"]=>
|
145
|
+
float(4.22)
|
146
|
+
["shipOverseasArea"]=>
|
147
|
+
string(0) ""
|
148
|
+
["genreId"]=>
|
149
|
+
string(6) "564277"
|
150
|
+
["pointRateStartTime"]=>
|
151
|
+
string(0) ""
|
152
|
+
["itemUrl"]=>
|
153
|
+
string(191) "https://hb.afl.rakuten.co.jp/hgc..............."
|
154
|
+
}
|
155
|
+
}
|
156
|
+
[1]=>
|
157
|
+
array(1) {
|
158
|
+
["Item"]=>
|
159
|
+
array(35) {
|
160
|
+
}
|
161
|
+
}.....
|
162
|
+
```
|
22
163
|
|
23
164
|
### 試したこと
|
24
165
|
|
25
166
|
['Items']の後の整数が入っいている[]に$iを渡し、for文による繰り返し構文で$iに1〜20までの数字を渡したのですが、最初のURL移行は取得できませんでした。
|
26
167
|
for文が機能していないのではと、「echo $i」も行いましたが、こちらは正常に1〜20を出力しました。
|
168
|
+
```PHP
|
169
|
+
for($i=0; $i<20; $i++;) {
|
170
|
+
print($arr['Items'][$i]['Item']['affiliateUrl'].'<br><br>');
|
171
|
+
echo $i;
|
172
|
+
}
|
173
|
+
```
|
27
174
|
|
28
175
|
### その他やりたいこと
|
29
176
|
もしできれば、affiliateURL以外の値も取得したいのでその方法と、上記のコードでは「print」で出力していますが、実際の環境では変数に置くなどして,htmlとcssで整形もしていきたいので、その方法まで教えていただけると幸いです。
|