Php 从数组中删除值高于/低于阈值的项
在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()循环来实现这一点,但似乎应该有一种更优雅的方式
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还应该通过引用传递键和实际数组,这可能会导致奇怪的行为。)您发布的解决方案看起来更好。:)