如何在PHP中获取新推送项的数字键?

时间:2010-02-04 07:03:58

标签: php arrays

$arr[] = $new_item;

是否可以通过编程方式获取新推送的项目?

请注意,没有必要count($arr)-1

$arr[1]=2;
$arr[] = $new_item;

在上述情况下,它是2

6 个答案:

答案 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]是正确的(如果不是,则会出现逻辑错误)。