如何让php json解码分页

时间:2011-06-30 20:25:31

标签: php json

我正在寻找一个php json分页方法/类。这是我的代码。如何将每个2 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页

的text1 text2的

第2页

文字3 文本4

PAGE3

text5 text6

2 个答案:

答案 0 :(得分: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'];
   }
}

答案 1 :(得分: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