2017-08-15 5 views
0

Excelで列を選択するために配列を使用しています。今はAからCZが必要ですが、今後はさらに大きなセットに拡張する必要があります。私は誰かが私が現在これをやっているよりも速くて良い方法があることを望んでいます。ここでExcelの列見出しをPHPの配列に簡単に設定する

は、私が今やっていることです:

$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]; 
    } 
} 

これは私AからEZに行く155個の値を持つ配列を与えます。

これを実行するより良い方法はありますか?ソリューションの

答えて

2

あなたがPHPは、あなたが行うことができますことを意味し、perl-style incrementing of charactersをサポートしていることを実感します:

$startColumn = 'A'; 
$endColumn = 'CZ'; 
++$endColumn; 

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

に注意する唯一のものは使用できません終了条件であります<または>ですので、実際の最後をインクリメントして使用します。!=

+0

PHPがPerlスタイルのインクリメントをサポートしているかどうかはわかりませんでした。私はPerlをとにかく知らないので、それは私のために出てこないでしょう。しかし、簡単な答えのためのタク。 – Mike

0

ワン:

$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; 
    } 
} 
関連する問題