有一个数组:
$bounds = array([0]=>array('lower'=>2,'upper'=>5),
[1]=>array('lower'=>0,'upper'=>3));和一个变量:
$val = 4;有没有什么PHP函数可以判断$val是否属于$bounds数组中“下”和“上”界限定义的任何区间?在这个例子中,4属于第一个区间2;5。因此,答案应该是'true‘。
发布于 2012-09-12 03:55:21
我不知道有什么。您可能需要对其进行编码。下面这样的代码就可以了:
function isFromInterval($bounds, $val) {
foreach ($bounds as $value) {
if ($val >= $value['lower'] && $val <= $value['upper']) {
return true;
}
}
return false;
}发布于 2012-09-12 03:56:01
我不认为有一个内置的函数可以做到这一点。
但是,您可以使用foreach语句来完成此操作:
function check_interval($bounds, $val) {
foreach ($bounds as $array) {
if($array['lower'] <= $val && $array['upper'] >= $val)
return true;
}
return false;
}发布于 2012-09-12 03:53:12
不是的。
您必须为数组创建一个循环,如下所示
$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
}作为函数
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;
}
}https://stackoverflow.com/questions/12376883
复制相似问题