PHP - 获取不大于下一个数组值的数组值

问题描述 投票:-2回答:2

在这个数组:$array = array(6, 20, 50, 80, 100);

我想返回未通过某个数字的值。

例如,假设我有一个数字$number = 45;。我想从20返回$array

...如果我有一个号码$number = 99;,我想返回80。

如果数字是$number = 20;,那么它将返回20。

我怎么能做到这一点?

编辑:抱歉不包括示例代码...这是一个我假设的简单问题。

基本上这是通过下面接受的答案解决的。

php arrays
2个回答
1
投票

遍历数组中的每个项目,对于低于您的数字的每个项目,用该数字替换变量。

    $final = 0;
    foreach($array as $element) {
        if($element <= $number) {
            $final = $element;
        }
    }

如果你的数组不合适,那么它应该有所不同。

$final-array = array();
    foreach($array as $element) {
        if($element <= $number) {
            array_push($final-array, $element);
        }
    }
$final = 0;
foreach($final-array as $num) {
    if($num>$final) {
        $final = $num;
    }
}

4
投票

您可以首先rsort数组,然后循环,直到值低于或等于您指定的值,然后break退出循环,因为不再需要继续。

$value = 99;
$array = array(6, 20, 50, 80, 100);
rsort($array);
$result = 0;
foreach ($array as $a) {
    if ($a <= $value) {
        $result = $a;
        break;
    }
}

echo $result; //80

Demo

© www.soinside.com 2019 - 2024. All rights reserved.