按 php 中的特定值递增数字等字母

Increment letters like number by certain value in php

在php如果我写

$c='A';<br> $c++; 它增加到 'B' 但如果我想增加 2 ,3 或更多, 例如: $c+2 或 $c+3 ,得到备用字母

 for ($column = 'B'; $column < $highestColumn; $column++) {   
 $cell = $worksheet->getCell($column.$row);
 $cell2=$worksheet->getCell($column+1.$row);
 }

但是 $column+1 不起作用

怎么做?

如果你想把字符加2,添加是行不通的。

试试这个:

echo chr(ord($c) + 2)

解释:

  1. 使用ord($c)计算$c的ascii值
  2. ascii值加2。
  3. 使用 chr() 函数将此 achii 值转换为字符串。

参考ord() and chr()函数。

注意: 正如 Mark Baker 指定的那样,这仅对 Z 有效,对 Z 之外无效。

递增字母仅适用于 ++ 增量运算符,不适用于 + 加法。

如果想继续使用增量器,可以使用循环:

$column = 'AH';
$step = 7; // number of columns to step by
for($ = 0; $i < $step; $i++) {
    $column++;
}

但是,PHP 的字符增量器不会向后工作,因此您不能使用负步长值


如果您想使用加法而不是循环,则需要将该列转换为数值,进行加法,然后再转换回来

$column = 'AH';
$step = 7; // number of columns to step by
$columnNumber = PHPExcel_Cell::columnIndexFromString($column) + $step;
$column = PHPExcel_Cell::stringFromColumnIndex($columnNumber - 1);

它的额外好处是允许您使用负步长值