我有一个包含元素的PHP数组:
$myarray = array ( "tom", "dick", "Harry" );
。我需要将数组固定为仅3个元素的大小 。我需要添加一个新元素“jerry”,使得数组现在看起来像
$myarray = array ( "jerry", "tom", "dick");
所以在某种程度上我正在移动元素并且第4个元素消失了,最新的元素在开头。我可以手工编写所有这些,重新编号元素等等。
我只是想知道是否有更快的方法来做到这一点。
非常感谢! Ĵ
答案 0 :(得分:7)
执行此操作的一种方法是使用array_pop
和array_unshift
:
# Pop the last element off the array
array_pop($myarray);
# Insert the new value
array_unshift($myarray, "jerry");
或者,您可以使用array_merge
和array_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