如何循环A-Z当超过26个字母时输出AA,AB,AC.....

つ淡淡幽思
  • 17

图片描述
为什么输入Y和Z的差别这吗大,是什么原因

回复
阅读 6.3k
3 个回答
✓ 已被采纳

for ($i = 0; $i <= 1000; $i++) {

$y = ($i / 26);
echo $i,"=>";
if ($y >= 1) {
    $y = intval($y);
    echo chr($y+64);
    echo chr($i-$y*26 + 65);
} else {
    echo chr($i+65);
}
echo "\r\n";

}

第一个小于等于Y
那么进位到最后Y+1为Z结束循环
第二个小于等于Z
到Z进位为Z+1为AA
字符串比较 是比较字母的先后顺序
那么此时循环到ZA则停止

viala
  • 58
    $str  = '';
    $str_ = '';
    $arr  = ['A','B','C','D','E','F','G','H','I','J','K','L','M',
            'N','O','P','Q','R','S','T','U','V','W','X','Y','Z',];

    foreach ($arr as $v) {
        $str .= $v.',';
        foreach ($arr as $vv) {
            $str_ .= $v.$vv.',';
        }

        $str_ .= '<br>';
    }

    echo $str.'<br>';
    echo $str_;
宣传栏