如果基于某个增量值未找到值,则php下一个键和值

如果基于某个增量值未找到值,则php下一个键和值,php,Php,我有一个数组,我在数组中搜索值,每5秒读取一次 我的意见是 $input = "23:31:13"; 应该是23:31:15 $array = array ( [0] => Array ( [0] => 18/06/2014 [1] => 23:31:10 [2] => 68.4 ) [1] => Array ( [0]

我有一个数组,我在数组中搜索值,每5秒读取一次 我的意见是

$input = "23:31:13";
应该是23:31:15

$array = array
(
[0] => Array
        (
            [0] => 18/06/2014
            [1] => 23:31:10
            [2] =>  68.4

        )
[1] => Array
        (
           [0] => array
            (

             [0] => 18/06/2014
            [1] => 23:31:15
            [2] =>  67.4

        )   
[2] => array(


            [0] => 18/06/2014
            [1] => 23:31:20
            [2] =>  69.4

        ) 

)
我的代码

foreach($arr as $key=>$temp_arr)
{
    if(in_array($input , $temp_arr) )
        {


            $return[$key]=$temp_arr;

        }

}
试试这个:

$t_input = strtotime($input);
$arr = array_values(array_filter($array, function ($v) use ($t_input) { return strtotime($v[1]) > $t_input; }));
if (count($arr)) $result = $arr[0][1];

在循环之前,将
$input
的最后一段四舍五入到最近的
5

list( $a, $b, $c) = explode( ":", "23:31:13");
$mod = $c % 5;
$input = $a . ':' . $b . ':' . (($mod < 3) ? $c - $mod : $c + (5 - $mod));
list($a,$b,$c)=分解(“:”,“23:31:13”);
$mod=$c%5;
$input=$a。“:”$b.“:”。(($mod<3)$c-$mod:$c+(5-$mod));

这将导致
23:31:13
$input
变为
23:31:15
,现在将在
in_array()
调用中匹配。

非常感谢您提供的任何帮助。是否希望根据输入获得更接近的日期?