我有幫助,一個令人難以置信的怪異要求在這裏,讓我嘗試儘可能地解釋一下:校驗陣列的序列值
我有一個項目數組(我散列的文本作爲文本ISN 「T重要的是,它是長度我將使用)
Array
(
[0] => ##
[1] => ###
[2] => ###
[3] => ###
[4] => ####
[5] => ###
[6] => ####
[7] => #####
[8] => ##
[9] => ###
)
我需要檢查是爲了確保每個值的長度比前一個元素的長度時,不超過1 。他們可以減少長度超過1,但他們不能增加超過1的長度。上述陣列根據這些規則是有效的。
但是,下面的數組將是錯誤的(請參閱元素4的長度是2如何大於3)。
Array
(
[0] => ##
[1] => ###
[2] => ###
[3] => ###
[4] => #####
[5] => ###
[6] => ####
[7] => #####
[8] => ##
[9] => ###
)
這是我到目前爲止有:
<?php
$array = array('##','###','###','###','####','###','####','#####','##','###'); // Valid Array
$array = array('##','###','###','###','#####','###','####','#####','##','###'); // Invalid Array
$tmp = 0;
$i = 0;
$valid = true;
foreach($array as $k => $v) {
if($i>0&&strlen($v)>$tmp&&strlen($v)>($tmp+1)) {
$valid = false;
}
$tmp = strlen($v);
$i++;
}
echo ($valid) ? 'Array is valid' : 'Array is invalid';
?>
它的工作原理,但它是凌亂如地獄,我不喜歡它在所有,任何人有一個更好的方式任何其他建議檢查這個?
小心用'abs',OP表示,負差可以' > 1'。 – moonwave99
雖然這是稍微更清潔,但它也會返回錯誤,當它減少超過1,這是允許的。 –
修正了負面的差異,thx – jaudette