• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:楽天市場ジャンル検索APIで順番が狂う)

楽天市場ジャンル検索APIで子ジャンルの順番が狂う

このQ&Aのポイント
  • 楽天市場ジャンル検索APIを使用して、指定の自ジャンルから子ジャンル一覧を取得する際、子ジャンルの順番が正しく表示されません。
  • 順番が狂って表示される問題が発生し、APIから取得した子ジャンルが意図した表示順ではなくなることがあります。
  • 以前のバージョンの楽天市場ジャンル検索APIでは正しく表示できたため、順番を正しく表示する方法を教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

楽天APIのマニュアル読んでも、特に指定する方法はなさそうですね。 受け取ってから自前で並べ替えるしかないのではないでしょうか。 <?php $data; //$dataを楽天から受け取ったジャンルの一覧として、 $sort_master = array('101354', '505034', '101311', '112493' ・・・・); //並び替え用マスタ $sort_end = '112960'; //その他が必ず一番最後にくるようにするとして。 $sorted = array(); //並び替え後のデータを格納 $end = array(); //その他格納用 $cnt = count($sort_master); //indexを保持したいので、配列数を取得しておく foreach($data['children'] as $child){ if(in_array($child['child']['genreId'], $sort_master)){ //並べ替えマスタに存在するジャンルIDだったら $pos = array_search($child['child']['genreId'], $sort_master); //マスタの配列キーを取得して $sorted[$pos] = $child; //そのキーに格納 }elseif($child['child']['genreId'] == $sort_end){ $sort_end = $child; //その他はその他用の変数にいれておく }else{ $sorted[$cnt++] = $child; //マスタに存在しない奴らは並び順を添字を並び替えマスタの最大値より大きい値で保存 } } //最後にその他を$sortedに追加 $sorted[] = $sort_end; ?> とか、ぱっと思いついた感じで書いてみました。 コレを全ジャンルにかけるのは正直微妙ではありますが、特定のジャンルのみサイトに表示されるのであれば、 そんなには問題ないのかなと思います。

hayate503
質問者

お礼

ありがとうございました。 おかげさまでなんとかなりました。

すると、全ての回答が全文表示されます。

関連するQ&A