在PHPExcel中将数组键更改为数字

时间:2016-04-21 10:28:46

标签: php arrays phpexcel

大家好我正在使用PHPExcel读取xls文件。我正在使用此行从数组中的xls获取数据

$sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);

它工作正常,但给我阵列是这样的

    Array
(
    [1] => Array
        (
            [A] => category_id (*)
            [B] => category_name (*)
            [C] => name_en (*)
        )
)

正如您所看到的那样,将其放置为字母而不是数字

        [A] => category_id (*)
        [B] => category_name (*)
        [C] => name_en (*)

但我希望我的数组像这样有数字键而不是像

这样的字母
    Array
(
    [1] => Array
        (
            [0] => category_id (*)
            [1] => category_name (*)
            [2] => name_en (*)
        )
)

有一种方法可以将此数组转换为数字键

  

$type = array_values(array_map('array_values', $sheetData));

但我如何使用PHPExcel获取此数组的数据我已经搜索了很多但没有找到任何解决方案。

2 个答案:

答案 0 :(得分:2)

将最后一个参数更改为false以获取数字索引

->toArray(null,true,true,false);

答案 1 :(得分:0)

另一种方法:

$input_file_type = PHPExcel_IOFactory::identify($path_to_file);
$obj_reader = PHPExcel_IOFactory::createReader($input_file_type);
$obj_php_excel = $obj_reader->load($path_to_file);

//  Get worksheet dimensions
$sheet = $obj_php_excel->getSheet(0); 
$highest_row = $sheet->getHighestRow(); 
$highest_column = $sheet->getHighestColumn();

//  Loop through each row of the worksheet in turn
for ($row = 1; $row <= $highest_row; $row++){
    //  Read a row of data into an array
    $row_data = $sheet->rangeToArray('A' . $row . ':' . $highest_column . $row, NULL, TRUE, FALSE);
    $excel_data[] = $row_data[0];
}