PHP数组:添加新元素时重新编号元素

时间:2011-09-23 11:21:52

标签: php arrays shift

我有一个包含元素的PHP数组:

$myarray = array ( "tom", "dick", "Harry" );

。我需要将数组固定为仅3个元素的大小 。我需要添加一个新元素“jerry”,使得数组现在看起来像

 $myarray = array ( "jerry", "tom", "dick");

所以在某种程度上我正在移动元素并且第4个元素消失了,最新的元素在开头。我可以手工编写所有这些,重新编号元素等等。

我只是想知道是否有更快的方法来做到这一点。

非常感谢! Ĵ

3 个答案:

答案 0 :(得分:7)

执行此操作的一种方法是使用array_poparray_unshift

# Pop the last element off the array
array_pop($myarray);

# Insert the new value
array_unshift($myarray, "jerry");

或者,您可以使用array_mergearray_slice

$myarray = array_merge(array("jerry"), array_slice($myarray, 0, 2));

这两种方法都会重置密钥,因此它们将从0重新编号为2。

答案 1 :(得分:1)

您可能需要查看SplQueue。在每次添加新元素时,检查元素的数量是否高于x,并在必要时出列。

答案 2 :(得分:0)

$myarray = array ( "tom", "dick", "Harry" );
array_pop( $myarray ); //remove the last element
array_unshift( $myarray, "jerry" ); //prepend the new element