从php数组中删除x之前的所有元素

从php数组中删除x之前的所有元素,php,arrays,Php,Arrays,如果我给你: $array = array(object1, object2, object3, object4); 比如说,在位置2,移除该位置之前的所有元素,最终结果是: $array = array(object3, object4); 我该怎么办?我一直在寻找并实现我想要的——但我不确定使用哪一个或如何使用它们来实现所需的效果。使用array\u slice。有关更多详细信息,请查看链接 array\u slice是一种方法,但是,如果您希望在不搜索特定值的情况下删除任意数组中的所有

如果我给你:

$array = array(object1, object2, object3, object4);
比如说,在位置2,移除该位置之前的所有元素,最终结果是:

$array = array(object3, object4);

我该怎么办?我一直在寻找并实现我想要的——但我不确定使用哪一个或如何使用它们来实现所需的效果。

使用array\u slice。有关更多详细信息,请查看链接


array\u slice
是一种方法,但是,如果您希望在不搜索特定值的情况下删除任意数组中的所有元素,则:

//assuming you've already verified the match is in the array
//make a copy of $array first if you don't want to break the original
while($array[0] !== $match) {
   array_shift(&$array);
}
或者,您可以:

$index = array_search($match, array_values($array));
if($index !== false) $array = array_slice($array, $index);

这完成了验证和切片。请注意,数组_values()用于说明关联数组。

或者如果您查看的是值而不是索引,在@Ashwani的答案中稍作调整,您可以得到:

$array = array('object1', 'object2', 'object3', 'object4');
$slice = array_slice($array, array_search('object3',$array));

数组\u切片($array,$position)@kyle,你是需要根据项目的索引来做这件事,还是你在查看这些值?你所说的对象是指一个对象($object1,$object2,…),还是仅仅是一个例子,你指的是‘object1’、‘object2’等等。
$array = array('object1', 'object2', 'object3', 'object4');
$slice = array_slice($array, array_search('object3',$array));