2

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

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

. 我需要保持数组的大小固定为 3 个元素。我需要添加一个新元素“jerry”,这样数组现在看起来像

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

所以在某种程度上我正在移动元素,第四个元素退出,最新的元素在开始。我可以手写所有这些,重新编号元素等。

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

非常感谢!Ĵ

4

3 回答 3

7

一种方法是使用array_popand array_unshift

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

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

或者,您可以使用array_mergeand array_slice

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

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

于 2011-09-23T11:23:24.593 回答
1

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

于 2011-09-23T11:34:11.953 回答
0
$myarray = array ( "tom", "dick", "Harry" );
array_pop( $myarray ); //remove the last element
array_unshift( $myarray, "jerry" ); //prepend the new element
于 2011-09-23T11:30:05.093 回答