現在PHPでAPIにリクエストを送り、レスポンスが返ってきて、単純に表示させるという所まで出来ている段階です。

やりたい事なのですが、複数のAPIを使って、各APIに同じキーワードでリクエストして、ショップは違うけど、同一商品を価格の安い順に表示させたいです。
詳しく言いますと、キーワードを仮にスニーカーとしたら、沢山の情報が返ってきて、違うショップで商品名が微妙に違っていても同一の商品があり、価格もショップによって違いますよね。
これをトップページに商品画像を表示させて、その下に商品一覧というリンクを作り、そのリンクをクリックすれば、複数のAPIから取得した同一商品が価格の安い順に表示されるよぅにしたいのですが、どのようにプログラミングすればいいのでしょうか?
APIで取得したデータで、同一商品を抽出したり、紐付けしたりということがわかりません。
具体的なサンプルコードだとありがたいですし、この部分を勉強すればできますよって言うことでもいいので、お願いします。
わかりにく質問ですみません。皆さんの知識を貸して下さい。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2015/01/30 02:27:40

ベストアンサー

id:tobeoscontinue No.1

回答回数220ベストアンサー獲得回数59

似た感じのことをcafe-beretさんが以前に質問しています。
APIを使って表示できているのであればほぼ出来ていることになります。
後はやりたい事にそって変更していきます。

複数のAPIを使って、各APIに同じキーワードでリクエストする。
この部分は表示することは出来ているということなので
APIにリクエストを送り、レスポンスを受け取る部分と表示する部分に分けます。
受け取る部分を関数ShopA()とし、配列に入れて返すようにします。
感じとしては
$A = ShopA('スニーカー');
とします。他サイトでは同じく
$B = ShopB('スニーカー');
のようになります。
返す値としてarray(商品名,商品コード,価格,商品URL,できれば画像URL)が必要です。
次にarray_merge($A, $B, ..)でマージしその結果を価格でソートし表示します。

同一商品を価格の安い順に表示させる。
同一商品としてJANコードやISBNコードが使えるといいのですが独自のコードの場合はやっかいです。
流れとしては同じで今度は商品コードで検索することになります。
$A = ShohinA(商品コード);
$B = ShohinB(商品コード);
$R = array_merge($A, $B, ..)でマージしその結果を価格でソートし表示します。

このやり方は力技なのでデーターベースを勉強してみるのがいいと思います。

  • id:yusuke16kyo
    ありがとうございました。
    やってみます☆

    やっぱデータベース勉強しないといけないですよね。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません