我在这里有一个非常奇怪的帮助请求,让我尽可能地解释它:
我有一个项目数组(我已经对文本进行了哈希处理,因为文本并不重要,这是我将使用的长度)
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';
?>
它有效,但它非常混乱,我对此一点也不满意,有人对更好的检查方法有任何其他建议吗?