我发现了一些使用负数组索引的代码。然后,我尝试使用它,没有什么特别的事情发生。它的行为正常。我可以通过使用标准的foreach循环检索所有元素。那么,使用这些负指数的目的是什么?什么时候使用呢?
foreach
nvbavucw1#
在PHP中,数组实际上只是某种有序Map:你可以使用整数 (正的或负的),也可以使用字符串作为键--这不会有太大的区别。
wlp8pajw2#
在PHP中,负数数组键没有特殊意义,因为(像其他值一样)它们可以是关联数组的键。
$arr = array(-1 => 5); echo $arr[-1];
然而,一些PHP的标准库函数(那些期望只有自然整数索引的正则数组)采用负偏移量表示“从末尾而不是从开头计数”。array_slice就是这样一个例子。
array_slice
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
pokxtpni4#
在PHP中,负数数组索引没有特殊的含义(例如,获取最后一个元素或倒数第二个元素等)。要获取数组的最后一个元素,请用途:
$last = end($array);
要获得倒数第二个add:
$secondLast = prev($array);
请记住这些函数modify the arrays internal pointer。要重置它,请用途:
reset($array);
omhiaaxx5#
在PHP 8中:任何以数字n作为第一个数字键的数组都将使用n+1作为下一个隐式键,即使n为负数。因此,如果第一个键为负-33,则下一个键将为-32(而不是0)......依此类推。看这里的区别https://3v4l.org/8MXq9
PHP 8
-33
-32
0
5条答案
按热度按时间nvbavucw1#
在PHP中,数组实际上只是某种有序Map:你可以使用整数 (正的或负的),也可以使用字符串作为键--这不会有太大的区别。
wlp8pajw2#
在PHP中,负数数组键没有特殊意义,因为(像其他值一样)它们可以是关联数组的键。
然而,一些PHP的标准库函数(那些期望只有自然整数索引的正则数组)采用负偏移量表示“从末尾而不是从开头计数”。
array_slice
就是这样一个例子。gk7wooem3#
从Python 7.1开始,我们有一个重要且实用的特例,即当使用数组语法从后向 * 访问字符串的特定 * 字符时:
pokxtpni4#
在PHP中,负数数组索引没有特殊的含义(例如,获取最后一个元素或倒数第二个元素等)。要获取数组的最后一个元素,请用途:
要获得倒数第二个add:
请记住这些函数modify the arrays internal pointer。要重置它,请用途:
omhiaaxx5#
在
PHP 8
中:任何以数字n作为第一个数字键的数组都将使用n+1作为下一个隐式键,即使n为负数。
因此,如果第一个键为负
-33
,则下一个键将为-32
(而不是0
)......依此类推。看这里的区别
https://3v4l.org/8MXq9