// Traverse along an array in a specified direction to find the next value that is not null
private function getnextFilledValue(array $data, int $from, int $direction) {
for($offset = 1;; $offset++) {
// Do not consider values outside of the array bounds
// This could also be written within the second for condition
if($offset < 0) return 0;
if($offset >= count($data)) return null;
// Calculate the offset taking the direction into account
$directedOffset = $offset * $direction;
// If a value is found, return it, otherwise continue traveling along the array
if(!is_null($data[$from + $directedOffset])) {
return $data[$from + $directedOffset];
}
}
}
1条答案
按热度按时间z8dt9xmd1#
下面的函数将查找数组中的下一个“填充”值。
$data
要遍历的数组。$from
您希望从其开始的索引。最有可能的情况是,您正在循环使用此函数。$direction
该方向可以用作最后一个方向-1,也可以用作下一个方向+1。该功能:
您还可以更改
if(!is_null($da...
处的条件,以使用不同的检查来检测“填充”值。