筛选数组并添加缺失键的值

时间:2018-08-28 12:34:39

标签: php arrays phpspreadsheet

我在处理某些事情上有些困难。我正在尝试获取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进行排序,以便正确的数据最终出现在右边的列中。

任何帮助将不胜感激。

0 个答案:

没有答案