我在处理某些事情上有些困难。我正在尝试获取XML文件,并使用PhpSpreadSheet将其转换为XLS文件。
我正在遍历XML文件,然后将所需的数据附加到数组中,在每一项的末尾,我都将该数组推到数据数组中以获得类似的内容。
foreach ( $namespaces as $namespace ) {
foreach ( (array) $item->children( $namespace ) as $key => $child ) {
if ( is_object( $child ) || is_array( $child ) ) {
foreach ( (array) $child as $childKey => $childChild ) {
$_item[ $key . '__' . $childKey ] = is_numeric( $childChild ) ? (float) $childChild : (string) $childChild;
}
} else {
$_item[ $key ] = (string) $child;
}
}
}
$workSheetData[] = $_item;
我还构建了一个一维数组,其中的键和值与XLS文件的标题相同。 $ headers数组将附加到每次迭代中,以添加我可能遇到的任何新键。
$_worksheetHeaders = array_combine(array_keys($_item),array_keys($_item));
$worksheetHeaders += $_worksheetHeaders;
现在我有某些行具有某些内容的多列,并且它们都有各自的键,但是由于并非所有行都具有所有键,因此我需要将缺少的键从headers数组追加到$ workSheetData的右侧第二级数组带有空字符串。
此外,由于要附加标题,因此我需要以与标题相同的方式对dataArray进行排序,以便正确的数据最终出现在右边的列中。
任何帮助将不胜感激。