2016-01-04 3 views
0

Я пытаюсь экспортировать многомерный массив в качестве файла excell с использованием phpexcel librery. Как-то я не могу выйти за пределы экспорта файла с именем group в columne's.Многомерный массив с PHPExcel

Мой код:

$arr = array(
      "group1"=>array(
        1001 => array(
          "name"=>"Product 1", 
          "desc"=>"lorem ipsum", 
          "star"=>"3", 
          "price"=>"15" 
          ), 
        1002 => array(
          "name"=>"Pedruzka", 
          "desc"=>"Speck, Zwiebeln", 
          "star"=>"2", 
          "price"=>"17" 
          ) 
     ), 
      "group2"=>array(
        1001 => array(
          "name"=>"Margherita", 
          "desc"=>"Tomaten, Mozzarella, Oregano", 
          "star"=>"3", 
          "price"=>"15" 
          ), 
        1002 => array(
          "name"=>"Pedruzka", 
          "desc"=>"Speck, Zwiebeln", 
          "star"=>"2", 
          "price"=>"17" 
          ) 
) 
    ) 

Код для экспорта:

$objPHPExcel = new PHPExcel(); 

...... 

    $i = 0; 
    foreach ($arr as $key => $value){ 
     $objPHPExcel->getActiveSheet()->SetCellValue(PHPExcel_Cell::stringFromColumnIndex($i).'1', $key); 
     $objPHPExcel->getActiveSheet()->SetCellValue(PHPExcel_Cell::stringFromColumnIndex($i+1).'2', $value); 
     $i++; 
    } 

    ..... 
+0

Ну вы только с использованием 1 цикла, когда вы на самом деле нужно 3 ... – Naruto

+0

пожалуйста, вы можете помочь, предоставив некоторые примеры кода? Я пытался это сделать, но столкнулся с дополнительными проблемами? –

ответ

0

Я думаю, самый простой способ, чтобы объяснить ситуацию, чтобы просто объяснить вам, как циклы работы. A foreach цикл даст вам key и value.

Так на основе первого цикла вы используете:

ключ (первый) будет: group1,

значение этого ключа содержит:

array("name"=>"Product 1", 
     "desc"=>"lorem ipsum", 
     "star"=>"3", 
     "price"=>"15" 
    ) 

Поэтому в основном то, что вам нужно для этого нужно использовать дополнительный цикл. Если вы хотите лучше понять, вы можете найти здесь full example.

В основном то, что вы собираетесь сделать, это:

foreach ($arr as $key => $value){ 
    foreach ($value as $key2 => $value2){ 
     //do stuff with PHPExcel 
     //call items in array by key 
     $name = $value2["name"]; 
     $price = $value2["price"]; 
    } 
} 
Смежные вопросы