将Excel列标题设置为PHP中数组的快捷方式

我正在使用一个数组来selectExcel中的列。 现在我需要ACZ ,但是将来可能需要扩展到更大的一个。 我希望有人比我现在做的更快或更好的方式。

这是我现在正在做的事情:

 $ColumnArray2 = array('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'); $ColumnArray = array(); for($x = 0 ; $x <= 25 ; $x++) { $ColumnArray[] = $ColumnArray2[$x]; } for($x = 0 ; $x <= 4 ; $x++) { for($y = 0 ; $y <= 25 ; $y++) { $ColumnArray[] = $ColumnArray2[$x].$ColumnArray2[$y]; } } 

这给了我一个从AEZ有155个值的数组。

有没有更好的方法来完成这个?

你知道PHP支持perl风格的字符递增 ,这意味着你可以这样做:

 $startColumn = 'A'; $endColumn = 'CZ'; ++$endColumn; $ColumnArray = []; for($column = $startColumn; $column != $endColumn; ++$column) { $ColumnArray[] = $column; } 

唯一要注意的是最终条件不能使用<> ,所以我们增加实际的结束,并使用!=

解决scheme之一:

 $ColumnArray2 = array('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'); $ColumnArray = array(); for($x = 0 ; $x <= 5 ; $x++) { foreach ($ColumnArray2 as $v) { $ColumnArray[] = $x == 0? $v : $ColumnArray[$x-1] . $v; } }