Я нашел код, который использует отрицательные индексы массива. Затем я пытаюсь использовать его, ничего особенного не происходит. Это ведет себя нормально. Я могу получить все элементы, используя стандартный цикл foreach
.
Итак, какова цель использования этих отрицательных показателей? И когда я должен его использовать?
Массив, в PHP, на самом деле является просто своего рода упорядоченной картой: вы можете использовать целые числа (положительные или отрицательные) , но также строки, как ключи, и не будет большой разницы.
Отрицательные ключи массива не имеют особого значения в PHP, поскольку (как и любое другое значение) они могут быть ключами ассоциативного массива.
$arr = array(-1 => 5); echo $arr[-1];
Некоторые стандартные функции библиотеки PHP (те, которые ожидают регулярные массивы с только натуральными целыми индексами), однако, принимают отрицательные смещения, чтобы означать «подсчет с конца, а не на начало». array_slice
– один из таких примеров.
Отрицательные индексы массивов не имеют специального значения (т. Е. Получают последний / второй последний элемент и т. Д.) В PHP. Чтобы получить последний элемент массива, используйте:
$last = end($array);
Чтобы получить второй последний, добавьте:
$secondLast = prev($array);
Имейте в виду, что эти функции изменяют внутренний указатель массивов . Для его сброса используйте:
reset($array);
Начиная с 7.1 , мы имеем важный и практичный частный случай, т. Е. При использовании синтаксиса массива для доступа к определенным символам строки с обратной стороны :
$str = "123"; $empty = ""; echo "LAST CHAR of str == '$str[-1]'<br>"; // '3' echo "LAST CHAR of empty == '$empty[-1]'<br>"; // '', Notice: Uninitialized string offset: -1