PHP中数组的负索引

时间:2011-07-31 13:09:01

标签: php arrays

我发现了一些使用负数组索引的代码。然后,我尝试使用它,没有什么特别的事情发生。它表现正常。我可以使用标准foreach循环检索所有元素。

那么,使用这些负面指数的目的是什么?我什么时候应该使用它?

5 个答案:

答案 0 :(得分:24)

PHP中的数组实际上只是某种有序映射:你可以使用整数(正面或负面),还可以使用字符串作为键 - 并且不会有太多差异。

答案 1 :(得分:15)

负数组键在PHP中没有特殊含义,因为(与任何其他值一样)它们可以是关联数组的键。

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

PHP的一些标准库函数(那些期望只有自然整数索引的常规数组)会将负偏移量表示“从结束而不是从开始计数”。 array_slice就是这样一个例子。

答案 2 :(得分:10)

From 7.1 onward,我们有一个重要且实用的特殊情况,即使用数组语法从后向访问字符串的特定字符时

$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

答案 3 :(得分:8)

负数组索引在PHP中没有特殊含义(即获取最后/第二个最后一个元素等)。 要获取数组的最后一个元素,请使用:

$last = end($array);

要获得第二个最后添加:

$secondLast = prev($array);

请记住这些功能modify the arrays internal pointer。要重置它,请使用:

reset($array);

答案 4 :(得分:0)

PHP 8中:

<块引用>

任何以数字 n 作为其第一个数字键的数组都将使用 n+1 为其下一个隐式键,即使 n 是负数。

因此,如果第一个键为负 -33,则下一个键将为 -32(不是 0).. 以此类推。

看这里的区别

https://3v4l.org/8MXq9