2011-06-30 101 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'].' '; 
} 

out_file.txt

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

我需要劃分的數據是這樣的:

第1頁

文本1 文本2

第2頁

文字3 文本4

第3頁

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']; 
    } 
}