抱歉,找不到我需要的东西。我有xls / xlsx。然后我得到这样的smth:
array
0 =>
array
0 => string 'NameFirstColumn'
1 => string 'NameSecondColumn'
1 =>
array
0 => string 'qqq'
1 => float 30
2 =>
array
0 => string 'www'
1 => float 20
第一行是名称为值的标头。如何使PHPExcel转换为数组看起来像:
array
0 =>
array
NameFirstColumn => string 'qqq'
NameSecondColumn => float 30
1 =>
array
NameFirstColumn => string 'www'
NameSecondColumn => float 20
答案 0 :(得分:8)
假设您已在$array
$headings = array_shift($array);
array_walk(
$array,
function (&$row) use ($headings) {
$row = array_combine($headings, $row);
}
);
答案 1 :(得分:0)
我的解决方案看起来像下面的代码。假设您已经从电子表格中读取了$ rows
$header = array_shift($rows);
$data = toKeyedRows($rows, $header);
toKeyedRows函数的指定如下:
function toKeyedRows(array $rows, array $header) : array
{
array_walk($header,function($value,$key){ $value = $value?:$key; });
array_walk(
$rows,
function(&$row)use($header)
{
$row = array_combine($header,$row);
}
);
return $rows;
}