我试图找到一种方法来验证php数组中的某些数字,检查每个值是否大于最后一个值。
以下是一个例子:
$number['num1']=1;
$number['num2']=2;
$number['num3']=3;
$number['num4']=4;
if($number['num1'] > $number['num2'] || $number['num1'] > $number['num3'] ||
$number['num1'] > $number['num4']){
//Some error
}
i can manually check each but is there an easier way, any suggestions?
答案 0 :(得分:4)
您可以通过简单的循环并使用PHP数组指针函数next
和current
轻松实现此目的:
$array = [1,2,3,4];
$isValid = true;
$current = current($array);
while($next = next($array)) {
if($next <= $current) {
$isValid = false;
break;
}
$current = $next;
}
var_dump($isValid);
答案 1 :(得分:2)
Scopey打败了我,但这就是我所做的:
$number['nums'][4] = 4;
$number['nums'][2] = 2;
$number['nums'][1] = 600;
$number['nums'][3] = 3;
// Note, I rearranged the order above just to make sure it
// works no matter what order the values get put in
function isAscending($arr) {
ksort($arr);
for ($i=0; $i<count($arr); $i++) {
if (isset($arr[$i-1])) {
if ($arr[$i-1] > $arr[$i]) {
return false;
}
}
}
return true;
}
var_dump(isAscending($number['nums'])); // false