Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中查找数组范围_Php - Fatal编程技术网

在PHP中查找数组范围

在PHP中查找数组范围,php,Php,我在数组中有一系列值,如: $values = array(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5); 我需要找到数组中大于或等于指定数字的最小值的索引。例如,如果用户输入0.25,我需要知道第一个数组索引是2 在我使用过的其他语言中,比如R,有一个“which”函数,它将返回满足某些条件的索引数组。我还没有在PHP中发现这一点,所以我希望其他人已经解决了这个问题 谢谢。您可以使用 它与R的功能完全相同。希望此功能

我在数组中有一系列值,如:

$values = array(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5);
我需要找到数组中大于或等于指定数字的最小值的索引。例如,如果用户输入0.25,我需要知道第一个数组索引是2

在我使用过的其他语言中,比如R,有一个“which”函数,它将返回满足某些条件的索引数组。我还没有在PHP中发现这一点,所以我希望其他人已经解决了这个问题

谢谢。

您可以使用


它与R的功能完全相同。

希望此功能能帮助您

function find_closest_item($array, $number) {
    sort($array);
    foreach ($array as $a) {
        if ($a >= $number) return $a;
    }
    return end($array); // or return NULL;
}

我不知道是否有内置的功能,但这应该可以:

function getClosest($input, $array) 
{
    foreach($array as $value)
    {
        if ($value >= $input)
        {
            return $value;
        }
    }

    return false;
}

您可以使用以下工作逻辑。可能还有其他内置函数可用于解决此问题

<?php
$values = array(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5);
$search=0.35;
$result_index = NULL;
$result_value=NULL;

$count=count($values);
for($i=0;$i<$count;$i++) {
    if($values[$i]<$search) {
        continue;
    }
    if($result_index==NULL) {
        $result_index = $i;
        $result_value = $values[$i];
        continue;
    }

    if($values[$i]<$result_value) {
        $result_index = $i;
        $result_value = $values[$i];
    }

}
print $result_index . " " . $result_value;
?>

您可以构建自己的自定义函数:

function findIndex($input_array, $num)
{
    foreach($input_array as $k => $v)
    {
        if($v >= $num)
        {
           return $k;
        }       
    }

    return false;
}

此函数将返回数组索引(键)。如果您不需要索引,而是需要值,那么在这里发布的其他函数将完成这项工作。你应该明确你想要得到什么,因为你的问题有点不明确

实际上,你需要调用结果上的
array\u keys