Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从数组中删除值高于/低于阈值的项_Php_Arrays_Sorting_Filter - Fatal编程技术网

Php 从数组中删除值高于/低于阈值的项

Php 从数组中删除值高于/低于阈值的项,php,arrays,sorting,filter,Php,Arrays,Sorting,Filter,在php中,当值大于预先确定的阈值(例如给定一个数组)时,从数组中删除项的最有效方法是什么 Array ( [0] => 1.639 [1] => 2.168 [4] => 1.897 [6] => 4.129 ) 我想删除所有值大于2的项,保留键关联,以便 Array ( [0] => 1.639 [4] => 1.897 ) 我知道我可以使用foreach()循环来实现这一点,但似乎应该有一种更优雅的方式

在php中,当值大于预先确定的阈值(例如给定一个数组)时,从数组中删除项的最有效方法是什么

Array
(
    [0] => 1.639
    [1] => 2.168
    [4] => 1.897
    [6] => 4.129
)
我想删除所有值大于2的项,保留键关联,以便

Array
(
    [0] => 1.639
    [4] => 1.897
)

我知道我可以使用
foreach()
循环来实现这一点,但似乎应该有一种更优雅的方式

无论您使用什么,数组都必须循环,但您可以使用
array\u filter
将其隐藏:

function test($var) { return $var < 2; }
$data = array_filter($data, 'test');
函数测试($var){return$var<2;}
$data=array_filter($data,'test');

+1。我打算提出同样的建议,尽管使用array_walk,这是一个错误的函数。我忘记了数组过滤器。。。(array_walk还应该通过引用传递键和实际数组,这可能会导致奇怪的行为。)您发布的解决方案看起来更好。:)