$arr[] = $new_item;
是否可以通过编程方式获取新推送的项目?
请注意,没有必要count($arr)-1
:
$arr[1]=2;
$arr[] = $new_item;
在上述情况下,它是2
答案 0 :(得分:11)
end()
完成工作,返回值,
如果对你有帮助,
您可以使用key()
来取回钥匙。
在我写完答案之后,我看到了这个链接中的功能:
http://www.php.net/manual/en/function.end.php
function endKey($array){
end($array);
return key($array);
}
答案 1 :(得分:6)
max(array_keys($array))
应该做的伎俩
答案 2 :(得分:2)
最安全的做法是:
$newKey = array_push($array, $newItem) - 1;
答案 3 :(得分:1)
您可以尝试:
max(array_keys($array,$new_item))
array_keys($array,$new_item)
将返回与值$new_item
关联的所有键,作为数组。
在所有这些键中,我们对最后添加的键感兴趣,并且具有max
值。
答案 4 :(得分:0)
您可以使用变量来跟踪数组中的项目数:
$i = 0;
$foo = array();
$foo[++$i] = "hello";
$foo[++$i] = "world";
echo "Elements in array: $i" . PHP_EOL;
echo var_dump($foo);
答案 5 :(得分:0)
如果它是新创建的,您应该保留对该元素的引用。 :)
您可以使用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]
是正确的(如果不是,则会出现逻辑错误)。