Get filtered values from array like values between range 10-20

后端 未结 4 438
悲哀的现实
悲哀的现实 2021-01-03 01:00

how to get filtered values from array like values between range 10-20. my array contain 10,15,18,25,88,20. i want to print only between range 10-20.

4条回答
  •  情书的邮戳
    2021-01-03 01:14

    There are number of way to filter array in PHP.

    Using 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);
    

    In action

    If you want to change range start and range end without modifying create_function code:

    $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);
    

    In action

    $your_array = array(10,15,18,25,88,20);

    Using foreach loop:

    $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);
    

    In action

    Or so if you don't need to create new array, but modify existing one:

    $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);
    

    In action

提交回复
热议问题