2011-06-30 4 views
0

私はPHP jsonページネーションメソッド/クラスを探しています。ここに私のコードです。ページングのために、2つのjsonデータをグループ化する方法は?php jsonデコードページネーションの作り方

$body = file_get_contents("out_file.txt"); 
$json = json_decode($body,true); 
foreach($json as $data){ 
    echo $data['name'].' '; 
} 

[ 
    {"name":"text1","num":"1"}, 
    {"name":"text2","num":"2"}, 
    {"name":"text3","num":"3"}, 
    {"name":"text4","num":"4"}, 
    {"name":"text5","num":"5"}, 
    {"name":"text6","num":"6"} 
] 

out_file.txt私はこのようにデータを分割必要があります。

ページ1

テキスト1テキスト2

PAGE2

テキスト3 text4

PAGE3

text5 text6

答えて

1

JSONデータは、データ転送フォーマットだ... "表示" メディアではありません。 JSON本体内のデータのページング方法はあなた次第ですが、JSONだけでなく、すべてのデータ構造に当てはまります。あなたのサンプルJSON構造が配列であることを考えると、あなたは、単にあなたの「ページ」のオフセットでいくつかの配列のインデックス付けを行いたい:

$page = 2; 
$items_per_page = 2; 

echo $json[$page * $items_per_page]['name'] // $json[4] -> text5 
echo $json[$page * $items_per_page + 1]['name'] // $json[5] -> text6 
4

json_decode($body,true)はあなたに指定されたJSONオブジェクトの代わりに連想配列の配列を返します。ファイル。表示されるすべての要素を含む配列があることがわかっている場合、汎用ページネーション機能を使用して、表示するデータを制御できます。何かのように...

$body = file_get_contents("out_file.txt"); 
$json = json_decode($body,true); 
paginate($json,$pageNumber); 

function paginate($data, $page = 1, $perPage = 2) { 
    $x = ($page - 1) * $perPage; 
    $z = $page * $perPage; 
    $y = ($z > count($data)) ? count($data) : $z; 
    for(; $x < $y; $x++) { 
     echo $data[$x]['name']; 
    } 
}