我有一个内容很多的数组。这里和示例:
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中管理它?
答案 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);