从PHP数组中删除值
使用PHP,我试图根据元素的值从数组中删除元素 例如,使用以下数组:从PHP数组中删除值,php,arrays,Php,Arrays,使用PHP,我试图根据元素的值从数组中删除元素 例如,使用以下数组: Array ( [671] => Array ( [0] => 1 [1] => 100 [2] => 1000 ) [900] => Array ( [0] => 15 [1] => 88
Array
(
[671] => Array
(
[0] => 1
[1] => 100
[2] => 1000
)
[900] => Array
(
[0] => 15
[1] => 88
}
)
我希望能够在要删除的内部数组中指定on的值。例如,如果我指定100,结果数组将如下所示:
Array
(
[671] => Array
(
[0] => 1
[2] => 1000
)
[900] => Array
(
[0] => 15
[1] => 88
}
)
我的第一个想法是使用foreach在数组中循环,并在找到时取消设置“冒犯”值,但这似乎并没有引用原始数组,只是引用了创建的循环变量
谢谢。两个想法:
foreach($array as $id => $data){
foreach($data as $index => $offending_val){
if($offending_val === 100){
unset($array[$id][$index]);
}
}
}
您可以尝试使用array_filter,传入一个回调函数,如果该值是要取消设置的值,该函数将返回false。使用上面的示例:
$new\u internal\u array=array\u filter($internal\u array,$callback\u返回\u false\u如果\u值为\u 100)
如果您想做一些更详细的工作,可以探索SPL的ArrayIterator类,特别是offsetUnset()方法。您可以使用:
array_walk($your_array, function(&$sub, $key, $remove_value) {
$sub = array_diff($sub, array($remove_value));
}, 100);