我发现一些使用负数组索引的代码。然后,我尝试使用它,没有什么特别的事情发生。它的行为正常。我可以通过使用标准的foreach
循环来检索所有元素。PHP中数组的负指数
那么,使用这些负指数的目的是什么?我应该什么时候使用它?
我发现一些使用负数组索引的代码。然后,我尝试使用它,没有什么特别的事情发生。它的行为正常。我可以通过使用标准的foreach
循环来检索所有元素。PHP中数组的负指数
那么,使用这些负指数的目的是什么?我应该什么时候使用它?
PHP中的数组实际上只是某种有序的映射:您可以使用整数(正数或负数),但也可以使用字符串作为键 - 并且没有太大区别。
负数组键在PHP中没有特殊含义,因为(像任何其他值一样)它们可以是关联数组的键。然而,
$arr = array(-1 => 5);
echo $arr[-1];
一些PHP的标准库函数(即期待与自然整数索引规则排列的那些),采取负偏移表示“从结束,而不是开始计数”。 array_slice
就是这样一个例子。
负数组索引在PHP中没有特殊含义(即获取最后/倒数第二个元素等)。 为了得到一个阵列中使用的最后一个元素:
$last = end($array);
要获得倒数第二个加:
$secondLast = prev($array);
请记住,这些功能modify the arrays internal pointer。要重置它使用:
reset($array);
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
在PHP5中,'E_NOTICE未初始化的字符串偏移:-1' –
你可以得到最后一个元素更直接。 '$ someArray [count($ someArray) - 1]' –