2010-12-01 10 views
-1

APIのサンプル結果は、次のようにフォーマットされます。 "限界"は500に設定することができます。私は結果を解析するために様々なページ区切りのクラスを試しましたが、私の試みでは成功しませんでした。彼らは、["page"] => int(x)というオプションを提供しているので、簡単に改ページすることができます。コード神のための簡単な、多分私ではない。どんな助けでも大歓迎です。多次元配列のページ分割

$var = array(7) { 
     ["errors"]=> array(0) { } 
     ["warnings"]=> array(1) { 
     [0]=> array(2) { 
      ["code"]=> string(26) "api_class_update_available" 
      ["msg"]=> string(58) "The Api class is now available in version 1.6" 
     } 
     } 
     ["data"]=> array(4) { 
     [0]=> array(3) { 
      ["url"]=> string(7) "http://" 
      ["keyword"]=> string(7) "keyword1" 
      ["price"]=> string(5) "23.99" 
     } 
     [1]=> array(3) { 
      ["url"]=> string(7) "http://" 
      ["keyword"]=> string(7) "keyword2" 
      ["price"]=> string(5) "19.99" 
     } 
     [2]=> array(3) { 
      ["url"]=> string(7) "http://" 
      ["keyword"]=> string(7) "keyword3" 
      ["price"]=> string(5) "29.99" 
     } 
     [3]=> array(3) { 
      ["url"]=> string(7) "http://" 
     ["keyword"]=> string(7) "keyword4" 
      ["price"]=> string(5) "9.99" 
     } 
     } 
     ["countryCode"] => string(2) "US" 
     ["page"] => int(1) 
     ["limit"]=> int(4) 
    } 
+1

'APIのサンプル結果' what api? –

+1

はおそらく、私は理解していない突出しています....しかし、私は...あなたが求めている正確に何 – Webnet

+0

Webnetを知らない - どのように私は私が提供されたコードのように構成されている配列をページ分割することができますか? – gBarrett

答えて

0

あなたの質問には多少の矛盾がありますが、私はそれに答えようとします。基本的なページ設定を実装する必要があるように思えます。ここにいくつかのリンクがあります。代わりに、データベースクエリの

http://google.com/search?q=php+pagination

http://forums.devnetwork.net/viewtopic.php?f=1&t=99545&p=537019#p537019

、あなたはarray_slice()を使用することがあります。しかし、同じコンセプト。

+0

ありがとうございましたJonah - 私の理解では、ページ区切りクラスは配列のスライスを実行するようにコードされていますが、最初のレベルのarray(7)では[data]配列ではありません。 – gBarrett

+0

そして、 '[" data "]'をクラスに与えます。 – Jonah

+0

ありがとうジョナ!私は$ var ["data"]を使ってページネーションを得ることができました。私は本当に助けに感謝します。 – gBarrett

1

ほとんどのページネーションアルゴリズムは、データセット全体のサイズが知られているという仮定の下で動作します。この特定の例では、そうではないように見えるので、ページ外のアルゴスはあなたを助けないかもしれません。

このページ番号にデータがない場合でも、任意のページ番号でデータページを取得できるようになりました(つまり、dataキーは空の配列になります)。

ので - そして、ここで何をしますか?あなたはいくつかのオプション

  1. を持っているだけです「以前」と「次」のページネーションのリンクを表示し、ユーザーがデータの新しいページを要求したときのみ、APIから新しいデータをフェッチします。キッカーはここで、これを次のようになります。あなたが現在フェッチされたページのレコード数がある場合を除き、実際に次のページが(があることを確認するために毎回プリフェッチと「次」のページ内のデータをカウントする必要があります(1回と同様のプロセスで、ユーザーがクリックするだけで自動的に行います)、チャンク/ページ番号を付けてください。このアプローチの問題は、リクエスト間にデータセットを格納する負担がかかり、かなり大きくなる可能性があることです。また、最初のページの読み込みにかなりの量のAPIオーバーヘッドが含まれる可能性があります(キャッシングによる最適化は無視されます)。

要するに、いくつかの作業があります。

+0

ピーターを入力してくれてありがとう! – gBarrett