$result_id[][] = "";
$result_total[][] = "";
foreach ($user as $key) {
$a = 0;
foreach ($drama as $row) {
if ($w_average[$key['userid']][$row['id']] > 0) {
if ($w_average[$key['userid']][$row['id']] < 1) {
$result_id[$key['userid']][$a] = $row['id'];
$result_total[$key['userid']][$a] = $w_average[$key['userid']][$row['id']];
$a ;
}
}
}
}
我想得到 w_average 的正值和最接近 1 的值。
w_average 是 0.25 和 0.33 但我的源代码的输出是 0.25
如何解决?谢谢
uj5u.com热心网友回复:
您确定该值是作为数字传递的,而不是作为字符串传递的吗?
$w_average = [0.25, 0.33, 1.21, -0.4];
foreach ($w_average as $row) {
if($row < 1 && $row > 0 ) {
echo "W_average = ".$row." -> Ok";
} else {
echo "W_average = ".$row." -> NO";
}
}
输出:
W_average = 0.25 -> Ok
W_average = 0.33 -> Ok
W_average = 1.21 -> NO
W_average = -0.4 -> NO
例子:
$w_average = [0.25, 0.33, 1.21, -0.4];
$near = 0;
foreach ($w_average as $row) {
if($row < 1 && $row > $near) {
$near = $row;
}
}
echo $near;
输出:0.33
uj5u.com热心网友回复:
您可以使用abs($number - $nearest)
来获取值与您想要的数字的距离
function closest(array $numbers, $nearest = 1) {
$max = PHP_INT_MAX;
foreach($numbers as $number) {
$distance = abs($number - $nearest);
if($distance < $max) {
$max = $distance;
$nearest = $number;
}
}
return $nearest;
}
var_dump(closest([0.25, 0.33]));
// Result 0.33
0 评论