Резюме:
Я ищу правильный способ сортировки двумерного (многомерного) массива по последовательности столбцов в AutoIt.Я хорошо знаком с AutoIt, и есть функция _ArraySort
, которая обеспечивает сортировку по столбцам, что приводит к сортировке строк.Но мне нужно отсортировать порядок / последовательность столбцов в направлении столбцов (в алфавитном порядке).
Справочная информация и цель:
Для отчета о тестовом примере, который ясоздать (файл HTML), мне нужно отобразить таблицу в нем.Эта таблица должна содержать данные части результата теста.
Я уже достиг:
Я читаю CSV-файл в массив (с помощью определенного разделителя), что не является проблемой,Я могу отсортировать двумерный массив для последовательности строк, и анализ и преобразование в структуру HTML для отчета также не является проблемой.
Но то, чего я хочу достичь, показано в примере таблицы внизу.Обратите внимание, что пример содержит только данные примера.Реальное содержимое массива будет иметь гораздо больше столбцов и строк в массиве, как результат теста.Но этого должно быть достаточно для получения идеи.
Код:
Это только пример данных массива, как показано ниже:
Global $a2dData[6][6]
$a2dData[0][0] = 'fruits'
$a2dData[0][1] = 'IT manufactures'
$a2dData[0][2] = 'painters'
$a2dData[0][3] = 'music genres'
$a2dData[0][4] = 'days'
$a2dData[1][0] = 'apple'
$a2dData[1][1] = 'Google'
$a2dData[1][2] = 'Picasso'
$a2dData[1][3] = 'Jazz'
$a2dData[1][4] = 'Monday'
$a2dData[2][0] = 'Orange'
$a2dData[2][1] = 'Microsoft'
$a2dData[2][2] = 'Van Gogh'
$a2dData[2][3] = 'Blues'
$a2dData[2][4] = 'Thursday'
$a2dData[3][0] = 'Pear'
$a2dData[3][1] = ''
$a2dData[3][2] = 'Da Vinci'
$a2dData[3][3] = 'Hip Hop'
$a2dData[3][4] = 'Friday'
$a2dData[4][0] = ''
$a2dData[4][1] = 'Apple'
$a2dData[4][2] = 'Monet'
$a2dData[4][3] = 'Rap'
$a2dData[4][4] = 'Sunday'
$a2dData[5][0] = 'Cherry'
$a2dData[5][1] = 'Adobe'
$a2dData[5][2] = 'Michelangelo'
$a2dData[5][3] = 'Classic'
$a2dData[5][4] = ''
_ArrayDisplay( $a2dData )
А теперьКак отсортировать последовательность столбцов 2D-массива в AutoIt?
Фактические данные массива перед сортировкой последовательности столбцов:
| fruits | IT manufactures | painters | music genres | days |
| apple | Google | Picasso | Jazz | Monday |
| Orange | Microsoft | Van Gogh | Blues | Thursday |
| Pear | | Da Vinci | Hip Hop | Friday |
| | Apple | Monet | Rap | Sunday |
| Cherry | Adobe | Michelangelo | Classic | |
Ожидаемые данные массива после сортировкипоследовательность столбцов:
| days | fruits | IT manufactures | music genres | painters |
| Monday | apple | Google | Jazz | Picasso |
| Thursday | Orange | Microsoft | Blues | Van Gogh |
| Friday | Pear | | Hip Hop | Da Vinci |
| Sunday | | Apple | Rap | Monet |
| | Cherry | Adobe | Classic | Michelangelo |
Уже есть функция, чтобы сделать это, или я должен сделать это самостоятельно?