Php 使用第一个元素作为键将索引多维数组转换为关联数组
我正在竭尽全力,试图在PHP中使用索引数组的第一个元素作为关联数组的键,将索引多维数组转换为关联数组。我不确定我解释的不正确,所以请参阅下面的示例 这里是数组的一个片段,实际的数组在第二维度中有48个元素,我只是以3为例Php 使用第一个元素作为键将索引多维数组转换为关联数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我正在竭尽全力,试图在PHP中使用索引数组的第一个元素作为关联数组的键,将索引多维数组转换为关联数组。我不确定我解释的不正确,所以请参阅下面的示例 这里是数组的一个片段,实际的数组在第二维度中有48个元素,我只是以3为例 [0] => Array ( [0] => fsn [1] => ac_type [2] => flt_type ) [1] => Array ( [0] =
[0] => Array
(
[0] => fsn
[1] => ac_type
[2] => flt_type
)
[1] => Array
(
[0] => 1219601
[1] => 748
[2] => SS
)
[2] => Array
(
[0] => 1206869
[1] => 748
[2] => SS
)
我想要的是:
[0] => Array
(
[fsn] => 1219601
[ac_type] => 748
[flt_type] => SS
)
[1] => Array
(
[fsn] => 1206869
[ac_type] => 748
[flt_type] => SS
)
到目前为止,我正在使用PHPSReadSheet将XLS文件中的信息提取到数组中。最终目标是将数据推送到mysql数据库
<?php
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($inputFileName);
$worksheet = $spreadsheet->getActiveSheet();
$rows = [];
foreach ($worksheet->getRowIterator() AS $row) {
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(FALSE); // This loops through all cells,
$cells = [];
foreach ($cellIterator as $cell) {
$cells[] = $cell->getValue();
}
$rows[] = $cells;
}
echo '<pre>';
print_r ($rows);
echo '</pre>';
?>
任何帮助都将不胜感激 移开第一项以获取钥匙:
$result = array_map(function($values) use ($keys) {
return array_combine($keys, $values); }, $array);
然后使用键数组将array\u combine
映射到它的其余部分
if (isset($keys)) {
$rows[] = array_combine($keys, $cells);
} else {
$keys = $cells;
}
根据编辑中显示的代码,如果替换
$rows[]=$cells,则在构建阵列时实际上可以这样做代码>带有:
移开第一项以获取钥匙:
$result = array_map(function($values) use ($keys) {
return array_combine($keys, $values); }, $array);
然后使用键数组将array\u combine
映射到它的其余部分
if (isset($keys)) {
$rows[] = array_combine($keys, $cells);
} else {
$keys = $cells;
}
根据编辑中显示的代码,如果替换$rows[]=$cells,则在构建阵列时实际上可以这样做代码>带有:
我花了好几个小时想弄明白,但没用,你在几分钟内就搞定了!非常感谢你的帮助!!您基于我的编辑进行的编辑工作非常完美,并清理了我的代码。再次感谢!我花了好几个小时想弄明白,但没用,你在几分钟内就搞定了!非常感谢你的帮助!!您基于我的编辑进行的编辑工作非常完美,并清理了我的代码。再次感谢!