Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP 2字符减量(AB->;AA)_Php_Phpexcel - Fatal编程技术网

PHP 2字符减量(AB->;AA)

PHP 2字符减量(AB->;AA),php,phpexcel,Php,Phpexcel,我正在使用PHPExcel实现一些导出函数。 由于PHP可以自动增加字母表,它一直工作得很好,但我在尝试减少字母表时遇到了一个问题。 我可以像这样递减单个字符$decremented=chr(ord($someChar)-1),但它不适用于2个字符(如“AA”、“BB”等) 有没有办法减少两个字符?比如“ZZ”->“ZX”,“AA”->“Z” 任何帮助或想法都将不胜感激 这里有一个适用于您的递减函数: function decrement($str) { $index = strlen($s

我正在使用PHPExcel实现一些导出函数。 由于PHP可以自动增加字母表,它一直工作得很好,但我在尝试减少字母表时遇到了一个问题。 我可以像这样递减单个字符
$decremented=chr(ord($someChar)-1),但它不适用于2个字符(如“AA”、“BB”等)

有没有办法减少两个字符?比如“ZZ”->“ZX”,“AA”->“Z”


任何帮助或想法都将不胜感激

这里有一个适用于您的递减函数:

function decrement($str) {
  $index = strlen($str)-1;
  $ord = ord($str[$index]);
  if ($ord > 65) {
    // The final character is still greater than A, decrement
    return substr($str, 0, $index) . chr($ord-1);
  }
  if ($index > 0) {
    // Strip the final 2 characters and append a Z 
    return substr($str, 0, $index-1) . 'Z';
  }
  // Can't be decremented
  return false;
}

这是一个适用于您的减量功能:

function decrement($str) {
  $index = strlen($str)-1;
  $ord = ord($str[$index]);
  if ($ord > 65) {
    // The final character is still greater than A, decrement
    return substr($str, 0, $index) . chr($ord-1);
  }
  if ($index > 0) {
    // Strip the final 2 characters and append a Z 
    return substr($str, 0, $index-1) . 'Z';
  }
  // Can't be decremented
  return false;
}

有人为此编写了一个函数


有人为此写了一个函数


是的,但这不是一个简单的声明,你必须做一些测试,以确保你的减量不低于
A
,除此之外还有很多。但你肯定在递增时做了类似的事情,所以当你递增
Z
时,你会得到
AA
是的,但这不是一个简单的语句,你必须做一些测试,以确保你的减量不低于A
A
,除此之外还有很多。但你肯定在增加时做了类似的事情,所以当你增加
Z
时,你会得到
AA
非常感谢!实际上更好。我的电脑无法通过
YYX
正确处理
BBX
值。非常感谢!实际上更好。我的无法通过
YYX
正确处理
BBX
值。