沃梦达 / 编程问答 / php问题 / 正文

PHP range() 从 A 到 ZZ?

PHP range() from A to ZZ?(PHP range() 从 A 到 ZZ?)

本文介绍了PHP range() 从 A 到 ZZ?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以使用 PHP 获得从 A 到 ZZ* 的范围?

Is it possible to get a range with PHP from A to ZZ*?

a b c ... aa ... zx zy zz

a b c ... aa ... zx zy zz

对我来说这不起作用:

range('A', 'ZZ');

它适用于 PHPExcel,当它给出 BE 作为最高字段时,我会遍历所有列.在这种情况下,我只得到 A,B:

It's for PHPExcel, when it gives BE as highest field i'd run through all colums. In this case i only get A, B:

range ('A', 'BE')

推荐答案

试试这个-(测试正常)

Just Try this- (tested working fine)

function createColumnsArray($end_column, $first_letters = '')
{
  $columns = array();
  $length = strlen($end_column);
  $letters = range('A', 'Z');

  // Iterate over 26 letters.
  foreach ($letters as $letter) {
      // Paste the $first_letters before the next.
      $column = $first_letters . $letter;

      // Add the column to the final array.
      $columns[] = $column;

      // If it was the end column that was added, return the columns.
      if ($column == $end_column)
          return $columns;
  }

  // Add the column children.
  foreach ($columns as $column) {
      // Don't itterate if the $end_column was already set in a previous itteration.
      // Stop iterating if you've reached the maximum character length.
      if (!in_array($end_column, $columns) && strlen($column) < $length) {
          $new_columns = createColumnsArray($end_column, $column);
          // Merge the new columns which were created with the final columns array.
          $columns = array_merge($columns, $new_columns);
      }
  }

  return $columns;
}
echo "<pre>";
print_r( createColumnsArray('BZ'));

复制自 http://php.net/range

这篇关于PHP range() 从 A 到 ZZ?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:PHP range() 从 A 到 ZZ?

基础教程推荐