Php 在数组中搜索值并删除前后的元素
我有一个包含大量内容的数组。以下是示例:Php 在数组中搜索值并删除前后的元素,php,arrays,search,Php,Arrays,Search,我有一个包含大量内容的数组。以下是示例: Array ( [0] => Value1 [1] => Value2 [2] => Remove [3] => Value3 [4] => Value4 [5] => Dont remove [6] => Value5 [7] => Value6 [8] => Remove // etc... ); 我想
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中管理它?一个简单的
foreach
循环就足够了-如果满足条件,则取消设置元素,在您的情况下,当值为Remove
时。对当前元素使用unset()
,以及之前的两个
这假设您的数组在数字上是无间隙索引的(因此每次迭代键从0开始,递增1)。如果它们有可能是其他键,您可以在迭代数组时将前面的两个键存储在一个变量中并取消设置
foreach($k=>v的数组){
如果($v=='Remove'){
未设置($array[$k]);
未设置($数组[$k-1]);
未设置($数组[$k-2]);
}
}
打印(数组);
- 现场演示
$k
小于2…(不希望出现异常)调用unset()
在未定义的元素上不会引发通知、警告或异常。什么都不会发生!不知道-奇怪的是,它在执行取消设置($a[-1])时甚至不会引发通知。
没有明确的文档说明它不会引发任何通知或警告,但它是隐含的-因为没有文档说明它这样做。