如何删除多个&BAD'数组中的值

时间:2014-04-05 01:47:15

标签: php arrays

假设$ arr是这样的:

Array
(
[0] => 43
[1] => 120
[2] => 5
[3] => 5465
[4] => 397
)

我希望删除111-5000之间的任何值。如果正确完成,我的数组将是:

Array
(
[0] => 43
[1] => 5
[2] => 5465

)

希望密钥可以自行更新。关于如何实现这一目标的任何想法?

2 个答案:

答案 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 )

See it in action

您也可以

$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在上面提到的内容是最佳解决方案。它比这个逻辑更快。

谢谢!