我正在寻找一个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
答案 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