PHP中数组的负索引

wqsoz72f  于 2023-02-03  发布在  PHP
关注(0)|答案(5)|浏览(192)

我发现了一些使用负数组索引的代码。然后,我尝试使用它,没有什么特别的事情发生。它的行为正常。我可以通过使用标准的foreach循环检索所有元素。
那么,使用这些负指数的目的是什么?什么时候使用呢?

nvbavucw

nvbavucw1#

在PHP中,数组实际上只是某种有序Map:你可以使用整数 (正的或负的),也可以使用字符串作为键--这不会有太大的区别。

wlp8pajw

wlp8pajw2#

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

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

然而,一些PHP的标准库函数(那些期望只有自然整数索引的正则数组)采用负偏移量表示“从末尾而不是从开头计数”。array_slice就是这样一个例子。

gk7wooem

gk7wooem3#

从Python 7.1开始,我们有一个重要且实用的特例,即当使用数组语法从后向 * 访问字符串的特定 * 字符时:

$str = "123";
echo "LAST CHAR of str == '$str[-1]'<br>"; // '3'

//$empty = "";
//echo "LAST CHAR of empty == '$empty[-1]'<br>"; // '', Notice: Uninitialized string offset: -1
pokxtpni

pokxtpni4#

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

$last = end($array);

要获得倒数第二个add:

$secondLast = prev($array);

请记住这些函数modify the arrays internal pointer。要重置它,请用途:

reset($array);
omhiaaxx

omhiaaxx5#

PHP 8中:
任何以数字n作为第一个数字键的数组都将使用n+1作为下一个隐式键,即使n为负数。
因此,如果第一个键为负-33,则下一个键将为-32(而不是0)......依此类推。
看这里的区别
https://3v4l.org/8MXq9

相关问题