Php 解析多级 - xml 成数组

Php parse multilevel - xml into array

我正在尝试将 xml 转换为 php 数组,但不知何故我做错了,有人可以帮我吗?

这里是 xml 甲酸盐:

<Department Id="3">
    <Week Date="23/03/2020">
        <Class DateTime="23/03/2020 18:00"/>
        <Class DateTime="23/03/2020 18:45"/>
    </Week>
    <Week Date="30/03/2020">
        <Class DateTime="30/03/2020 18:00"/>
        <Class DateTime="30/03/2020 18:45"/>
    </Week>
</Department>

输出需要这样:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [DateTime] => 23/03/2020 18:00
                )
            [1] => Array
                (
                    [DateTime] => 23/03/2020 18:45
                )
        )
    [1] => Array
        (
            [0] => Array
                (
                    [DateTime] => 30/03/2020 18:00
                )
            [1] => Array
                (
                    [DateTime] => 30/03/2020 18:45
                )
        )   
)

这是我试过的

foreach ($xml->children() as $week) {
    foreach ($week->children() as $class) {
        $j = 0;
        foreach ($class->attributes() as $a => $b){
            $results[$i][$j][$a] = (string) $b;
        }
        $j++;
    }
    $i++;
}

我不知道我的代码有什么问题:(

这只是在 XML 中获得正确级别以匹配循环的情况,这一次构建了一周的数据并将其添加到总体结果中...

$results = [];
foreach ( $xml->Week as $week ) {
    $weekData = [];
    foreach ( $week->Class as $class )  {
        $weekData[]['DateTime'] = (string)$class['DateTime'];
    }
    $results[] = $weekData;
}

要加载所有属性...

$results = [];
foreach ( $xml->Week as $week ) {
    $weekData = [];
    foreach ( $week->Class as $class )  {
        $classData = [];
        foreach ( $class->attributes() as $name => $value )   {
            $classData[$name] = (string)$value;
        }
        $weekData[] = $classData;
    }
    $results[] = $weekData;
}