首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP函数检查数字是否属于该区间

问PHP函数检查数字是否属于该区间
EN

Stack Overflow用户
提问于 2012-09-12 03:50:02
回答 4查看 2.2K关注 0票数 0

有一个数组:

代码语言:javascript
复制
$bounds = array([0]=>array('lower'=>2,'upper'=>5), 
                [1]=>array('lower'=>0,'upper'=>3));

和一个变量:

代码语言:javascript
复制
$val = 4;

有没有什么PHP函数可以判断$val是否属于$bounds数组中“下”和“上”界限定义的任何区间?在这个例子中,4属于第一个区间2;5。因此,答案应该是'true‘。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-09-12 03:55:21

我不知道有什么。您可能需要对其进行编码。下面这样的代码就可以了:

代码语言:javascript
复制
function isFromInterval($bounds, $val) {
    foreach ($bounds as $value) {
        if ($val >= $value['lower'] && $val <= $value['upper']) {
            return true;
        }
    }
    return false;
}
票数 2
EN

Stack Overflow用户

发布于 2012-09-12 03:56:01

我不认为有一个内置的函数可以做到这一点。

但是,您可以使用foreach语句来完成此操作:

代码语言:javascript
复制
function check_interval($bounds, $val) {
   foreach ($bounds as $array) {
       if($array['lower'] <= $val && $array['upper'] >= $val)
           return true;
   }
   return false;
}
票数 3
EN

Stack Overflow用户

发布于 2012-09-12 03:53:12

不是的。

您必须为数组创建一个循环,如下所示

代码语言:javascript
复制
$val    = 4;
$key_id = FALSE;

foreach($bounds as $key => $data){
    if($val <= $data['upper'] AND $val >= $data['lower']){
        $key_id = $key;
        break;
    }
}

if($key_id !== FALSE){
    //  found something
    //  $bounds[$key_id] is your result in the array
} else {
    // found nothing
}

作为函数

代码语言:javascript
复制
function find_range($bounds=array(), $val=0, $return_key=TRUE){
    if(is_array($bounds) === FALSE){
        $bounds = array();
    }

    if(is_numeric($val) === FALSE){
        $val = 0;
    }

    if(is_bool($return_key) === FALSE){
        $return_key = TRUE;
    }

    $key_id = FALSE;

    foreach($bounds as $key => $data){
        if($val < $data['upper'] AND $val > $data['lower']){
            $key_id = $key;
            break;
        }
    }

    if($key_id !== FALSE){
        return ($return_key === TRUE ? $key_id : TRUE);
    } else {
        return FALSE;
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12376883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档