求一个php最近的最小值算法

发布于 2022-09-11 20:03:46 字数 697 浏览 14 评论 0

<?php
$a = array(
            array('userid'=>3,'val'=>9.5),
            array('userid'=>1,'val'=>9),
            array('userid'=>2,'val'=>9.5),
            array('userid'=>5,'val'=>9.5),
            array('userid'=>8,'val'=>9.5)
            
);
//print_r($a);
$b = 9.5;
foreach ($a as $value) {
    if($value['val'] <= $b)
    {
        $userid = $value['userid'];
        break;
    }
}
echo $userid;
?>

如果给出一个 val= 0.95,

返回数组中最近的一个比 val= 0.95 小的userid,是0.9。

如果一个都没有比0.95小的,那么返回,第一个val=0.95,对应的userid。

大概意思是:总是取数组从头开始最近的 <= 0.95的,userid。,如果有相等,那么取后面那个看看是不是<9.5,如果是,就是9,对应的userid。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

大姐,你呐 2022-09-18 20:03:46
$a = array(
            array('userid'=>3,'val'=>0.95),
            array('userid'=>1,'val'=>0.95),
            array('userid'=>2,'val'=>0.95),
            array('userid'=>5,'val'=>0.95),
            array('userid'=>8,'val'=>0.95)
            
);
$x = 0.9;
$count=count($a);
$b=[];
foreach($a as $v){
  $arr2['val']   = abs($x-$v['val']);
    $arr2['userid'] = $v['userid'];
    $b[]=$arr2;
  //print_r ($v['val']);
}
$min = min($b);
print_r($min);

还差点,就对了。

妖妓 2022-09-18 20:03:46
$a = [
        ['userid' => 3, 'val' => 0.95],
        ['userid' => 1, 'val' => 0.95],
        ['userid' => 2, 'val' => 0.9],
        ['userid' => 5, 'val' => 0.95],
        ['userid' => 8, 'val' => 0.95]
    ];
    $x = 0.9;
    $b1 = [];
    $b2 = [];
    foreach($a as $v) {
        if($v['val'] < $x && !count($b1)) {
            $b1 = $v;
        }
        if($v['val'] === $x && !count($b2)) {
            $b2 = $v;
        }
    }
    $b = $b1 ?: $b2;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文