根据提供的值删除数组元素

时间:2014-01-24 08:02:33

标签: php

如果我有这样的阵列......

array('1','2','3','4','10')

...我怎么能在我提供的值的元素之前删除元素。

例如:

如果我提供了1,那么array = (1,2,3,4,10)

如果是2,那么array = (2,3,4,10) //Remove the numbers before 2

如果是3,那么array = (3,4,10) //Remove the numbers before 3

如果是4,那么array = (4,10) //Remove the numbers before 4

如果是10,那么array = (10) //Remove all before the 10

我目前正在考虑使用if else。但有没有办法使用某种php数组函数本身来做到这一点。

4 个答案:

答案 0 :(得分:1)

利用array_searcharray_slice

<?php
$arr=array_slice($arr, array_search('4',array('1','2','3','4','10')));
print_r($arr);

<强> OUTPUT :

Array
(
    [0] => 4
    [1] => 10
)

Demo

答案 1 :(得分:1)

$myArray = array('1','2','3','4','10');
$value = 3;

$key = array_search($value, $myArray);
$myNewArray = array_splice($myArray, 0, $key);

答案 2 :(得分:1)

也许这会有所帮助:

 $myArray = array('1','2','3','4','10');
 $x=3;
 $myArray = array_splice($myArray, array_search($x, $myArray), count($myArray));

答案 3 :(得分:0)

$array = array_filter($array, function($item) use ($filterItem) {
    return $item !== $filterItem;
});

将过滤掉等于$filterItem的每个项目。 array_filter on php.net