在数组中搜索值,然后删除元素

时间:2019-06-03 14:01:07

标签: php arrays search

我有一个内容很多的数组。这里和示例:

Array
    (
    [0] => Value1 
    [1] => Value2
    [2] => Remove
    [3] => Value3
    [4] => Value4
    [5] => Dont remove
    [6] => Value5 
    [7] => Value6
    [8] => Remove
    // etc... 
);

我想在此数组中搜索元素“ remove”并删除该元素,还删除“ remove”之前的两个元素(值1,值2以及值5和6,依此类推。

我如何在php中管理它?

1 个答案:

答案 0 :(得分:2)

一个简单的foreach循环就足够了-如果满足条件,则取消设置元素(在您的情况下,值为Remove时)。在当前元素上使用unset(),并在其之前使用两个。

这假定您的数组是数字索引而没有间隔(因此键从0开始,每次迭代递增1)。如果它们有可能成为其他东西,则可以在遍历数组并对其进行未设置时将两个先前的键存储在变量中。

foreach ($array as $k=>$v) {
    if ($v == 'Remove') {
        unset($array[$k]);
        unset($array[$k-1]);
        unset($array[$k-2]);
    }
}
print_r($array);