質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

XMLパーサ

XML文書のテキストデータだけを抜き出して、アプリケーションソフトが利用しやすい形式に変換させるソフトウェアをXMLパーサと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

2回答

474閲覧

php多次元連想配列から値の取り出し

Koh_

総合スコア27

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

XMLパーサ

XML文書のテキストデータだけを抜き出して、アプリケーションソフトが利用しやすい形式に変換させるソフトウェアをXMLパーサと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2018/01/31 13:10

phpとamazonAPIを使ってアマゾンの商品情報を取得し、MySQLに保存しようと試みています。
amazonのリファレンスを頼りに商品情報を取得するところまでは何とか出来たのですが、取得した情報が多次元連想配列(?)であり、欲しい情報を抽出できません。

以下コードの$responseに欲しい情報が入っています。しかし出力のXML(以下XMLはteratailの文字数制限から全文入りませんでした)の階層が深いので欲しい情報が抽出できません。例えば、「4061847392」や「村上龍」を取得したいときにはどのようにすればよいのでしょうか。どなたかご教授ください。よろしくお願い致します。

PHP

1 echo '<pre>'; 2 var_dump($response); 3 echo '</pre>';

xml

1オブジェクト(MarketplaceWebServiceProducts_Model_GetMatchingProductForIdResponse)#9(1){ 2 ["_fields":protected] => 3 配列(3){ 4 ["GetMatchingProductForIdResult"] => 5 配列(2){ 6 ["FieldValue"] => 7 配列(1){ 8 [0] => 9 オブジェクト(MarketplaceWebServiceProducts_Model_GetMatchingProductForIdResult)#14(1){ 10 ["_fields":protected] => 11 配列(5){ 12 ["Products"] => 13 配列(2){ 14 ["FieldValue"] => 15 オブジェクト(MarketplaceWebServiceProducts_Model_ProductList)#18(1){ 16 ["_fields":protected] => 17 配列(1){ 18 ["Product"] => 19 配列(2){ 20 ["FieldValue"] => 21 配列(1){ 22 [0] => 23 オブジェクト(MarketplaceWebServiceProducts_Model_Product)#23(1){ 24 ["_fields":protected] => 25 配列(7){ 26 ["Identifiers"] => 27 配列(2){ 28 ["FieldValue"] => 29 オブジェクト(MarketplaceWebServiceProducts_Model_IdentifierType)#27(1){ 30 ["_fields":protected] => 31 配列(2){ 32 ["MarketplaceASIN"] => 33 配列(2){ 34 ["FieldValue"] => 35 オブジェクト(MarketplaceWebServiceProducts_Model_ASINIdentifier)#31(1){ 36 ["_fields":protected] => 37 配列(2){ 38 ["MarketplaceId"] => 39 配列(2){ 40 ["FieldValue"] => 41 string(14) "A1VC38T7YXB528" 42 ["FieldType"] => 43 string(6) "string" 44 } 45 ["ASIN"] => 46 配列(2){ 47 ["FieldValue"] => 48 文字列(10) "4061847392" 49 ["FieldType"] => 50 string(6) "string" 51 } 52 } 53 } 54 ["FieldType"] => 55 文字列(50) "MarketplaceWebServiceProducts_Model_ASINIdentifier" 56 } 57 ["SKUIdentifier"] => 58 配列(2){ 59 ["FieldValue"] => 60 ヌル 61 ["FieldType"] => 62 文字列(55) "MarketplaceWebServiceProducts_Model_SellerSKUIdentifier" 63 } 64 } 65 } 66 ["FieldType"] => 67 文字列(50) "MarketplaceWebServiceProducts_Model_IdentifierType" 68 } 69 ["AttributeSets"] => 70 配列(2){ 71 ["FieldValue"] => 72 オブジェクト(MarketplaceWebServiceProducts_Model_AttributeSetList)#42(1){ 73 ["_fields":protected] => 74 配列(1){ 75 ["Any"] => 76 配列(2){ 77 ["FieldValue"] => 78 配列(1){ 79 [0] => 80 オブジェクト(DOMElement)#45(18){ 81 ["tagName"] => 82 string(18) "ns2:ItemAttributes" 83 ["schemaTypeInfo"] => 84 ヌル 85 ["nodeName"] => 86 string(18) "ns2:ItemAttributes" 87 ["nodeValue"] => 88 文字列(257) "文庫村上龍false講談社japanesePublishedjapaneseUnknown886.00JPY講談社5040.875.754.170.53BookABIS_BOOK1990-08-03講談社http://ecx.images-amazon.com/images/I/514IVqiH3VL._SL75_.jpg7553講談社愛と幻想のファシズム(上)(講談社文庫) " 89 ["nodeType"] => 90 int(1) 91 ["parentNode"] => 92 string(22) "(オブジェクト値省略)" 93 ["childNodes"] => 94 string(22) "(オブジェクト値省略)" 95 ["firstChild"] => 96 string(22) "(オブジェクト値省略)" 97 ["lastChild"] => 98 string(22) "(オブジェクト値省略)" 99 ["previousSibling"] =>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

API を使用するにはまだ早いようです。
API は他者のリソースなので、キチンと基礎学習を終えてから使用してください。

「4061847392」や「村上龍」を取り出すには、プロパティへのアクセスを行います。
プロパティ

投稿2018/01/31 13:23

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

手始めに、SimpleXMLあたりで処理してみてはいかがでしょうか:
PHP: 基本的な SimpleXML の使用法 - Manual

APIで取得したデータを一旦そのままファイルとして保存しておき、
構造を理解するために別途XMLエディタでそのファイルを開いて、
どこに必要な情報があるかを理解した上で、
SimpleXMLElement::xpathで取得できないかを検討します。
XPathに関する理解も必要になりますね。

投稿2018/02/01 01:16

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Koh_

2018/02/06 00:56

xpathで何とか処理できました アドバイスありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問