как получить отфильтрованные значения из значений типа массива между диапазоном 10-20. мой массив содержит 10,15,18,25,88,20. Я хочу печатать только между диапазоном 10-20.
использовать array_intersect
с range
$input = array(10,15,18,25,88,20); $myrange = range(10,20); $output = array_intersect($input , $myrange ); print_r($output );
DEMO
Вы можете использовать array_filter
function range10_20($var) { return ( $var >= 10 && $var <= 20 ); } $input = array(10,15,18,25,88,20); $output = array_filter($input, 'range10_20');
Или что-то типа того:
$input = array(10,15,18,25,88,20); $range = array( 'from' => 10, 'to' => 20 ); $output = array_filter($input, function ($element) use ($range) { return ( $var >= $range['from'] && $var <= $range['to'] ); });
Существует несколько способов фильтрации массива в PHP.
Использование array_filter
$your_array = array(10,15,18,25,88,20); $filtered = array_filter($your_array, create_function('$var', 'return $var >= 10 && $var <= 20;')); var_export($filtered);
В бою
Если вы хотите изменить начало диапазона и конец диапазона без изменения кода create_function:
$your_array = array(10,15,18,25,88,20); $range_start = 10; $range_end = 20; $filtered = array_filter($your_array, create_function('$var', 'return $var >= '.$range_start.' && $var <= '.$range_end.';')); var_export($filtered);
В бою
$ your_array = array (10,15,18,25,88,20);
Использование цикла foreach:
$filtered = array(); $range_start = 10; $range_end = 20; foreach ($your_array as $k=>$v) { if ($v >= $range_start && $v <= $range_end) { $filtered[$k] = $v; } } var_export($filtered);
В бою
Или, если вам не нужно создавать новый массив, но изменить существующий:
$your_array = array(10,15,18,25,88,20); $range_start = 10; $range_end = 20; foreach ($your_array as $k=>$v) { if (!($v >= $range_start && $v <= $range_end)) { unset($your_array[$k]); } } var_export($your_array);
с$your_array = array(10,15,18,25,88,20); $range_start = 10; $range_end = 20; foreach ($your_array as $k=>$v) { if (!($v >= $range_start && $v <= $range_end)) { unset($your_array[$k]); } } var_export($your_array);
В бою
Любые конкретные требования? Стандартный массив php не поддерживает поиск диапазона.
У меня есть 2 предложения: 1) сортировать массив, а затем искать свой верхний предел, что угодно до того, как верхний предел будет вашим результатом. 2) пересечь массив при прохождении, примените условия вашего диапазона.