как сделать PHP JSON декодировать нумерацию страниц - PullRequest
0 голосов
/ 01 июля 2011

Я ищу метод / класс 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

text3 text4

page3

text5 text6

Ответы [ 2 ]

4 голосов
/ 01 июля 2011

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 голос
/ 01 июля 2011

Данные 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...