简体   繁体   English

php数组选择大于数字且低于另一数字的值并将其保存到新数组

[英]php numeric array select values greater than a number and lower than another and save it to a new array

I have one array(dynamically created) that contains the following numbers 我有一个包含以下数字的数组(动态创建)

$numbers = array (200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000, 12000, 14000, 15000, 16000, 18000, 20000, 21000, 24000, 25000, 27000, 30000, 35000, 40000, 45000, 50000, 60000, 70000, 75000, 80000, 90000, 100000, 105000, 120000, 135000, 140000, 150000, 160000, 180000, 200000, 250000, 300000, 350000, 400000, 450000, 500000, 600000, 700000, 800000, 900000, 1000000)

I want to create new array (filtered) by >= and <= for example the new array to contains numbers greater or equal(>=) than 800 and lower or equal(<=) than 1600 我想通过> =和<=创建新数组(已过滤),例如新数组包含的数字大于或等于(> =)大于800且小于或等于(<=)大于1600

New Array
(
    [0] => 800
    [1] => 1000
    [2] => 1200
    [3] => 1400
    [4] => 1600
)

is that possible without using foreach? 是不是可以使用foreach?

$min = 800;
$max = 1200;
$newNumbers = array_filter(
    $numbers,
    function ($value) use($min,$max) {
        return ($value >= $min && $value <= $max);
    }
);

You are looking for array_filter http://php.net/manual/en/function.array-filter.php 您正在寻找array_filter http://php.net/manual/en/function.array-filter.php

A good example of use would be: 使用的一个很好的例子是:

array_filter($numbers, function($n){ 
    return $n >= 800 && $n <= 1600;
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM