AkisC AkisC - 2 months ago 10
PHP Question

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

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


is that possible without using foreach?

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