php生成区间字母,A-Z或者A-AZ,或者B-CC等等任意组合

$v = createStartToEnd("A","AZ");
print_r($v);
function createStartToEnd($s='',$e='')
{
$_start = $s;
$_end = $e;
$_start = strtoupper($_start);
$_end = strtoupper($_end);
$startlen = strlen($_start);
$endlen = strlen($_end);
$startsubstr =substr($_start, -1);
$substr =substr($_end, -1);

if ($startlen > 2 || $endlen > 2) {
echo '最大2位字母组合';
return;
}elseif ($startlen > $endlen) {
echo '开始字母数量不能大于结束字母数量';
return;
}elseif ($startlen ==1 && $endlen ==1) {
$startord =ord($_start);
$strord =ord($_end);
if ($str < $_start) {
echo '开始字母顺序不能排在结束字母之后';
return;
}
}elseif ($startlen ==2 && $endlen ==2) {
//第一位判断
$firststartstr = substr($_start,0,$startlen-1);
$firstendstr = substr($_end,0,$endlen-1);
$firststartord =ord($firststartstr);
$firstendord =ord($firstendstr);
if ($firstendord < $firststartord) {
echo '开始字母顺序不能排在结束字母之后';
return;
}
//第二位判断
$startord =ord($startsubstr);
$strord =ord($substr);
if ($strord < $startord) {
echo '开始字母顺序不能排在结束字母之后';
return;
}
}

if ($endlen >1 && $substr == 'Z') {
$firststr = substr($_end,0,$endlen-1);
$newfirststr = chr(ord($firststr)+1);
$key = $newfirststr."A";
}elseif ($endlen >1 && $substr != 'Z') {
$firststr = substr($_end,0,$endlen-1);
$substr = chr(ord($substr)+1);
$key = $firststr.$substr;
}

if($endlen == 1 && $substr == 'Z'){
$key = "AA";
}elseif($endlen == 1 && $substr != 'Z'){
$key = chr(ord($substr)+1);
}
for($i = $_start; $i != $key; $i++)
{
$result[] = $i;
}
return $result;
}

猜你喜欢

转载自www.cnblogs.com/zhangjian816/p/9013657.html