Подтвердить что ты не робот

Отрицательный индекс массива в PHP

Я нашел код, который использует отрицательные индексы массива. Затем я пытаюсь использовать его, ничего особенного не происходит. Это ведет себя нормально. Я могу получить все элементы, используя стандартный цикл foreach.

Итак, какова цель использования этих отрицательных индексов? И когда я должен его использовать?

4b9b3361

Ответ 1

Массив, в PHP, на самом деле является просто своего рода упорядоченной картой: вы можете использовать целые числа (положительные или отрицательные), но также строки, как ключи, и не будет большой разницы.

Ответ 2

Отрицательные ключи массива не имеют особого значения в PHP, так как (как и любое другое значение) они могут быть ключами ассоциативного массива.

$arr = array(-1 => 5);
echo $arr[-1];

Некоторые стандартные функции библиотеки PHP (те, которые ожидают регулярные массивы с только натуральными целыми индексами), однако, принимают отрицательные смещения, чтобы означать "подсчет с конца, а не на начало". array_slice является одним из таких примеров.

Ответ 3

Отрицательные индексы массивов не имеют особого значения (т.е. получают последний/второй последний элемент и т.д.) в PHP. Чтобы получить последний элемент массива, используйте:

$last = end($array);

Чтобы получить второе последнее добавление:

$secondLast = prev($array);

Имейте в виду, что эти функции изменяют внутренний указатель массивов. Для reset используйте:

reset($array);

Ответ 4

Начиная с 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