$arr[] = $new_item;
能否通过编程获取新推送的项目?
请注意,不必使用count($arr)-1
:
$arr[1]=2;
$arr[] = $new_item;
在上述情况下,它是
2
。end()
函数可以返回数组的最后一个值,如果需要获取该值对应的键名,可以在调用end()
后使用key()
方法。
我写完答案后发现这个链接中也有相关的函数说明:http://www.php.net/manual/en/function.end.php
function endKey($array){
end($array);
return key($array);
}
end()
函数可能会达到目的。 - rossipediamax(array_keys($array))
should do the trick
$newKey = array_push($array, $newItem) - 1;
你可以尝试:
max(array_keys($array,$new_item))
array_keys($array,$new_item)
将返回与值$new_item
相关联的所有键,作为一个数组。
我们对所有这些键中最后添加且具有max
值的那个键感兴趣。
$i = 0;
$foo = array();
$foo[++$i] = "hello";
$foo[++$i] = "world";
echo "Elements in array: $i" . PHP_EOL;
echo var_dump($foo);
$foo []
相比没有任何好处,除了创建一个以1为基础的数组(这可能是有利的)。 - Duncan如果它是新创建的,你应该保留对该元素的引用。:)
你可以像这样使用array_reverse
:
$arr[] = $new_item;
...
$temp = array_reverse($arr);
$new_item = $temp[0];
或者你可以这样做:
$arr[] = $new_item;
...
$new_item = array_pop($arr);
$arr[] = $new_item;
$arr[$n]
,其中$n > count($arr)
。 坚持使用array_*
函数进行操作,如果必须仅使用索引,则只有在0 < $n < count($arr)
的情况下才能这样做。 这样,索引应该保持有序和连续,然后您可以依赖于$arr[count($arr)-1]
是正确的(如果不正确,则存在逻辑错误)。
end()
函数本身,不用担心它的键。 - philfreo