Ваш цикл не повторяется, потому что условный сбой - «Z» больше, чем «AL». Вы можете использовать strnatcmp()
для достижения желаемого:
for ($x = $a; strnatcmp($x, $b); $x++) {
echo "The number is: $x\n";
}
Выход:
The number is: Z
The number is: AA
The number is: AB
The number is: AC
The number is: AD
The number is: AE
The number is: AF
The number is: AG
The number is: AH
The number is: AI
The number is: AJ
The number is: AK
[EDIT] На самом деле, да, это даже не нужно, просто проверьте на неравенство:
for ($x = $a; $x !== $b; $x++) {
Обратите внимание, что это может дать вам ошибку в зависимости от желаемого результата. Просто ударьте $ b перед циклом, если вам нужна еще одна итерация, или используйте цикл while, как в вашем примере.