У меня есть один массив (динамически созданный), который содержит следующие числа
$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)
Я хочу создать новый массив (отфильтрованный) с помощью> = и <=, например, новый массив содержит числа, большие или равные (> =), чем 800, и более низкие или равные (<=), чем 1600
New Array ( [0] => 800 [1] => 1000 [2] => 1200 [3] => 1400 [4] => 1600 )
возможно ли это без использования foreach?
$min = 800; $max = 1200; $newNumbers = array_filter( $numbers, function ($value) use($min,$max) { return ($value >= $min && $value <= $max); } );
Вы ищете array_filter http://php.net/manual/en/function.array-filter.php
Хорошим примером использования будет:
array_filter($numbers, function($n){ return $n >= 800 && $n <= 1600 });
Этот скрипт имеет синтаксические ошибки:
синтаксическая ошибка, неожиданно '}'
Это сработало:
array_filter($numbers, function($n){ return $n >= 800 && $n <= 1600; });