2017-02-14 10 views
1

Как можно объединить многомерный массив в PHP Excel?Многомерный массив Foreach в PHPExcel

Это мой код

$objWorkSheet = $this->excel->createSheet(1); //Setting index when creating 
    $colors = array(
     array("A1", "B1", "C1", "D1"), 
     array("A2", "B2", "C2", "D2"), 
     array("A3", "B3", "C3", "D3") 
    ); 

    $i = 2; 
    foreach ($colors as $values) { 
     $objWorkSheet->setCellValue('A'.$i++, $values[0]); 
     $objWorkSheet->setCellValue('B'.$i++, $values[1]); 
     $objWorkSheet->setCellValue('C'.$i++, $values[2]); 
     $objWorkSheet->setCellValue('D'.$i++, $values[3]); 
    } 

Но это дает мне этот результат

enter image description here

То, что я хочу, A2 - D2 будет цикл горизонтально то рядом будет A3 - D3, то так далее и т. д.

уже прочитал это foreach multidimensional array, но все еще не могу получить его.

ответ

2

Каждый $i++ увеличивает значение $i. В первом цикле все значения должны быть помещены во 2-ю строку, затем 3-го и так далее. Поэтому вам нужно увеличить значение после того, как значения будут помещены в соответствующую ячейку. Попробуйте -

foreach ($colors as $values) { 
    $objWorkSheet->setCellValue('A'.$i, $values[0]); 
    $objWorkSheet->setCellValue('B'.$i, $values[1]); 
    $objWorkSheet->setCellValue('C'.$i, $values[2]); 
    $objWorkSheet->setCellValue('D'.$i, $values[3]); 
    $i++; 
} 
+0

Ах спасибо, что работает –

+0

быстрый и правильный улов проблемы + 1 –

+0

:).. Примите решение ответить. –