根据当前键查找下一个非空数组值


Finding the next non-empty array value, based on current key

我在寻找一个我整个周末都在做的事情的答案,并且一直在努力寻找正确的方法来完成它。

假设我有这样一个PHP数组:

Array (
    [0] => 0
    [1] => 182
    [2] => 185
    [3] => 0
    [4] => 187
    [5] => 0
    [6] => 0
)

这个数组的每一行的键都是一天,基于一周中的一天的数字表示(1 =星期一,2 =星期二,等等)。

我想获得今天的值,但如果它是空的,我想获得下一个非零值。如果星期六(6)等于0,它也需要重置回星期天(0)。

Please help:S

<?php
$day = date('w'); // Getting today day number
$myArray = [0, 182, 185, 0, 187, 0, 0]; // Your array

function getValue($day, $myArray){
    $loopCount = 0; // avoid infinite loop
    for($i = $day; $i <= 7; $i++){
        // $i == 7 <=> $i = 0
        if($i == 7){
            $i = 0;
        }
        // Check if the value can be returned
        if($myArray[$i] != 0){
            return $myArray[$i];
        }

        $loopCount++;
        // If we have checked the whole array, we return null
        if($loopCount == 7){
            return null;
        }
    }
}
echo getValue($day, $myArray);
?>

你能测试这个代码,并告诉我,如果它是你正在寻找什么?

这段代码应该很容易理解,但如果你需要一些解释,请不要犹豫,问我