Создать нумерацию страниц в существующем массиве - PullRequest
0 голосов
/ 07 июня 2019

У меня есть один массив элементов, и я хочу создать несколько ссылок на страницы. К сожалению, я не могу установить количество элементов, которые будут возвращены в запросе mqin, поэтому мне всегда приходится иметь дело с полным массивом.

[0] => Array
    (
        [key] => value
        [key] => value
    )

[1] => Array

    (
        [key] => value
        [key] => value
    )

Допустим, у меня есть около 100 частей массива, и я хочу показать 9 одновременно. Я пытаюсь что-то вроде следующего:

$pagenum = $_GET['pagenum'];
$i = 1; 
foreach $array as $key => $a{
 //do some html 
 $i++;  
 if($i > 9){break;}
}

$pagenumUp = $pagenum +1;
$pagenumDown = $pagenum -1;

<a href="?pagenum=<?php echo $pagenumUp; ?>">Next</a>
<a href="?pagenum=<?php echo $pagenumDown; ?>">Prev</a>

Я застрял в том, чтобы найти способ установить точку, в которой код будет выполняться в зависимости от индекса. Так что если я на первой странице, то индекс должен работать в диапазоне от 0 до 8. Если я на первой странице, он должен работать в диапазоне от 9 до 17 и т. Д.

Я подумал, что, может быть, какой-то массив чисел для сравнения на основе номера страницы, но это должно быть что-то динамическое.

Я уйду с условным показом следующего и предыдущего на данный момент и выясню это позже.

1 Ответ

0 голосов
/ 07 июня 2019

Чтобы взять часть (или срез ) или массив, используйте array_slice и определите его параметры как:

$pageSize = 9;
$startPosition = ($_GET['pagenum'] - 1) * $pageSize;
$slice = array_slice(
    $fullArray,
    $startPosition,
    $pageSize
);

Чтобы разбить массив на части (или куски ), используйте array_chunk:

$pageSize = 9;
$chunks = array_chunk(
    $fullArray,
    $pageSize
);
// after that you can get required chunk by index - $chunks[0], $chunks[1], etc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...