根据变量获取数组中的最小值

我正在努力根据客户的回答获得最低价值。


$client_answer = 28;


$array = array(10,20,30,40,50);

应该给出的答案是:20


所以每个答案都应该向下舍入到较小的数字。


其他示例:


$client_answer = 37;


$array = array(10,20,30,40,50);

答案应该是 30。


$client_answer = 14;


$array = array(10,20,30,40,50);

答案应该是 10。


$client_answer = 45;


$array = array(10,20,30,40,50);

答案应该是 40。


有没有我可以使用的 php 函数?


如果不是,如何实现?


波斯汪
浏览 98回答 3
3回答

MM们

您可以过滤数组以仅包含等于或低于给定值的值$client_answer,然后max()在过滤后的数组上使用。$value = max(array_filter($array, function($v) use ($client_answer) {&nbsp; &nbsp; return $v <= $client_answer;}));在https://3v4l.org/KHB8r进行现场演示

SMILET

只有这轮正确$client_answer = 28;$array = array(10,20,30,40,50);rsort($array,1);$min_diff = max($array);$closest_val = max($array);foreach($array as $val){&nbsp; &nbsp; if(abs($client_answer - $val) < $min_diff)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; $min_diff = abs($client_answer - $val);&nbsp; &nbsp; &nbsp; &nbsp; $closest_val = $val;&nbsp; &nbsp; }}echo $closest_val;

哈士奇WWW

这可能是一个非常愚蠢的答案,但在这种特定情况下,您试图截断单元号?为什么不试试这个:$client_answer&nbsp;=&nbsp;intdiv(&nbsp;$client_answer,&nbsp;10)&nbsp;*&nbsp;10;除以 10,去掉最后一位,再乘一次。编辑:错字
打开App,查看更多内容
随时随地看视频慕课网APP