如何检查数组是否每个后面的值都大于最后一个


how to check an array if each following value is greater than the last

我正试图找到一种方法来验证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?

您可以通过一个简单的循环和使用PHP数组指针函数nextcurrent轻松实现这一点:

$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);

示例:http://ideone.com/3uHPMq

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