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

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

阅读 8k
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则停止

    $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_;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题