artem78
@artem78
Заканчивающий разработчик

Как сделать цикл по столбцам таблицы в PHP?

Задача: обойти в цикле все столбцы. Этот код прекрасно работает, пока $last_column содержит один символ.

$last_column = 'AM';
for ($column = 'A'; $column <= $last_column; $column++) {
	echo "$column ";
}


Но если в $last_column 2 символа, вместо:
A B C ... X Y Z AA AB AC ...AK AL AM

Выводит только:
A


Можно сделать через итератор столбцов в PHPExcel, но мне удобней получить название столбца в виде букв.
  • Вопрос задан
  • 732 просмотра
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
$last_column = 'AM';
$column_number = 0;
do {
    $column_name = (($t = floor($column_number / 26)) == 0 ? '' : chr(ord('A')+$t-1)).
                    chr(ord('A')+floor($column_number % 26));
    echo "{$column_name} ";
    $column_number++;
} while ($column_name != $last_column);
Ответ написан
Комментировать
Наверняка автору не актуально), но для истории пусть будет...
$last_column = 'AM';
for ($column = 'A'; $column != $last_column; $column++) {
    echo "$column ";
}
//или 
$column = 'A';
$last_column = 'AM';
while ($column != $last_column) {
    echo $column.' ';
    $column++;
}

//а в частном случае обычно я использую так
//$columnNamesArr массив с именами столбцов
$column_name = 'A';
foreach ($columnNamesArr as $columnName) {
    $objPHPExcel->getActiveSheet()->SetCellValue($column_name.'1', $columName);
    $objPHPExcel->getActiveSheet()->getColumnDimension($column_name)->setAutoSize(true);
    $column_name++;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы