PHP将Excel数据转换成3D数组

我有一个excel文件,其数据是一个3d数组。

在这里输入图像说明

我正在使用PHPExcel对象将数据返回到3D数组。 但是我只能返回一个2d数组。

$objPHPExcel = PHPExcel_IOFactory::load($file); $cell_collection = $objPHPExcel->getActiveSheet()->getCellCollection(); foreach ($cell_collection as $cell) { $column = $objPHPExcel->getActiveSheet() ->getCell($cell) ->getColumn(); $row = $objPHPExcel->getActiveSheet() ->getCell($cell) ->getRow(); $data_value = $objPHPExcel->getActiveSheet() ->getCell($cell) ->getValue(); if ($row == 1) { $header[$row][$column] = $data_value; } else { $arr_data[$row][$column] = $data_value; } } 

我怎样才能返回这样的结果数组:

 $res = array( [2]=>array( [A] => A,//column A [B] =>array([1]=>'red',[2]=>'pink',[3]=>'purple') ), [3]=>array( [A] => B,//column B [B] =>array([1]=>'white',[2]=>'blue',[3]=>'black') ), ); 

任何人都知道如何修改我的代码来返回预期的结果? 任何答案将不胜感激!

我不是一个PHP程序员,这个代码不符合。 在这里,我已经添加了我的代码来生成您期望的数组。 它可以帮助你解决你的问题。 我认为$列是像A,B列值

  $i = 1; $i_str = ""; $res = array(); foreach ($cell_collection as $cell) { $column = $objPHPExcel->getActiveSheet()->getCell($cell)->getColumn(); $row = $objPHPExcel->getActiveSheet()->getCell($cell)->getRow(); $data_value = $objPHPExcel->getActiveSheet()->getCell($cell)->getValue(); if ($row == 1) { $header[$row][$column] = $data_value; } else { if($column == 'A' && $data_value != ""){ $i++; $i_str = (string) $i; $res[$i_str]['A'] = $data_value; $res[$i_str]['B'] = array(); } else if($column == 'B'){ $len = (string) (count($res[$i_str]['B']) + 1); $res[$i_str]['B'][$len] = $data_value; } } } print_r($res) // here you will get your expected array