Как я должен это делать? Нужно ли мне
переписать ключи в соответствии с
доступное количество элементов? Немного
другой метод?
Нет, вам не нужно беспокоиться о том, что они не совпадают. Массивы php являются ассоциативными контейнерами , как словари на других языках. Если вы определяете что-то в 98 и 100, 99 не сидит там в памяти, структура данных за ассоциативным контейнером хранит только то, что там. Вы не тратите пространство, не «заполняя его» до счета.
Итак, практика, которую вы описываете, в порядке. Если нет страницы "99", то ничего не нужно отображать в вашем массиве. Однако может быть неплохо увидеть, что в вашем массиве нет ничего для параметра 'page', и вывести сообщение об ошибке.
Но тогда почему, когда я получаю доступ к $ total =
рассчитывать ($ MyArray); $ MyArray [$ итого]
где $ итого = 100 я не получаю
последний элемент? Я могу поставить страницу = 101 и
получить еще одну запись. Я не должен быть
способен сделать это
Потому что count считает количество вещей в массиве. Если у вас есть массив с заполненными только четными элементами, то есть:
$myArray[0] = "This";
$myArray[2] = "is";
$myArray[4] = "even";
Здесь count ($ myArray) равен 3. В [1] или [3] нет ничего. Может быть, это легче увидеть, когда вы берете числа из уравнения. Массивы могут иметь строковые индексы
$myArray = array();
$myArray["Hello"] = "A Bunch of";
$myArray["World"] = "words";
Здесь счетчик ($ myArray) равен 2.
В первом случае не имеет смысла обращаться к $ myArray [3], потому что там ничего нет. Очевидно, что во втором примере ничего нет в 2.