假设$ arr是这样的:
Array
(
[0] => 43
[1] => 120
[2] => 5
[3] => 5465
[4] => 397
)
我希望删除111-5000之间的任何值。如果正确完成,我的数组将是:
Array
(
[0] => 43
[1] => 5
[2] => 5465
)
希望密钥可以自行更新。关于如何实现这一目标的任何想法?
答案 0 :(得分:4)
将array_filter()
与删除不需要的值的自定义回调一起使用:
$array = array(43,120,5,5465,397);
$filtered = array_filter($array, function($val){
return ($val < 111 || $val > 5000);
});
print_r($filtered); // Array ( [0] => 43 [2] => 5 [3] => 5465 )
您也可以
$array = array(43,120,5,5465,397);
$filtered = array_filter($array, function($val){
return !($val > 111 && $val < 5000);
});
答案 1 :(得分:1)
您也可以使用以下逻辑。
foreach ($array as $key => $value) {
if($value >= 111 && $value <= 5000) {
unset($array[$key]);
}
}
但是John在上面提到的内容是最佳解决方案。它比这个逻辑更快。
谢谢!