我有一个字符串转换为1到7个值的数组,例如3,1234567,1234,357,46等
给定1到7之间的任何数字,如何找到数组中的下一个值?
$str=12345;
$arr=str_split($str);
$end=end($arr);
if ($day==$end) {
$next=reset($arr);
} else {
$loc=array_search($day, $arr)+1;
$next=$arr[$loc];
}
print $next;
如果day为1,则上面返回2并且如果day为5则返回1两者都是正确的但是如果day是6或7那么它不会返回正确的值,该值应该是1 - 同样如果数组是1245而且它是3,它再次没有返回正确的值,应该是4。
如果要使上述内容在所有情况下都返回正确的值,我需要做什么?
答案 0 :(得分:0)
$values = array_filter($arr, function($v) use($day) {
return $v > $day;
});
$value = $values ? array_shift($values) : array_shift($arr);
可能不是最佳和未经测试但它应该有效。