根据给定的最小值和最大值创建价格范围

时间:2013-07-31 13:17:15

标签: php range

鉴于两个值$min$max,我想为用户创建一个价格范围供您选择。

实施例

$min = 849;
$max = 41259;

我的门槛是:

<10K
10K to 25K
25K to 40K
40K+

因此,如果我的最小值是12000,则阈值中的第一个不会到来。尝试了几件事,但都没有奏效。任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:0)

一种解决方案可能是在PHP中使用for循环。

$min = 123;
$max = 345;
for($i=$min;$i<$max;$i++){
    echo $i."<br/>";
}

最小值更改$ min,最大值更改$ max。

更新:

如果你想要你的第一个和最后一个即最小和最大值不应该自己显示。您可以使用此代码

$min = 123+1;
$max = 345-1;
for($i=$min;$i<$max;$i++){
    echo $i."<br/>";
}

答案 1 :(得分:0)

我用以下功能解决了这个问题。这是针对上述评论中的所有人询问我做了什么。

function getPriceFilter( $min, $max ) {
    $min = ( int ) str_replace( ',', '', $min );
    $max = ( int ) str_replace( ',', '', $max );

    $result = array();

    $limit = array(
        10000 => array(
            'Less than 10,000',
            '0^10000'),
        25000 => array(
            '10,001 to 25,000',
            '10001^25000'),
        40000 => array(
            '25,001 to 40,000',
            '25001^40000'),
        40001 => array(
            '40,000+',
            '40001^1000000')
    );

    $minCheck = 0;
    foreach( $limit as $key => $check ) {
        if( ! $minCheck ) {
            if( $min <= $key ) {
                $result[] = $check;
                $minCheck = 1;
            }
        } else {
            if( $max >= $key ) {
                $result[] = $check;
            }
        }
    }

    return $result;
}