从 3d 数组生成 XML 结构

问题描述 投票:0回答:3

如何很好地展示数据结构。 下面粘贴我的多维数组,请帮忙

Array
(
    [1] => Array
        (
            [0] => Array
                (
                    [LP] => 1
                    [Produkt] => product1
                )
        )
    [2] => Array
        (
            [0] => Array
                (
                    [LP] => 2
                    [number] => 157/03/2014
                    [Produkt] => product1
                )
            [1] => Array
                (
                    [LP] => 2
                    [number] => 157/03/2014
                    [Produkt] => product2

=== 我的代码============================================== ==

foreach ($a as $date) {
    $output .= "\t\t\t<ID>". $date[0]['LP']."</ID>\n";

    second foreach for product {
        $output .= "\t\t\t<Produkt>". Produkt ."</Produkt>\n";
    }
}

因为我想要这样的东西:

1
    -Product1
2
    -Product1
    -Product2
3
    -Product1
4
    -Product1
    -Product2
php arrays xml loops
3个回答
2
投票

因为您似乎希望输出为 XML,所以我建议使用以下代码:

function arraytoxml($xmlObj,$data) {
    foreach ($data as $key => $value) {
        if(is_array($value)) {
            if(is_numeric($key)) {
                $key = 'item_' . $key;
            }
            $subnode = $xmlObj->addChild("$key");
            arraytoxml($subnode,$value);
        } else {
            $xmlObj->addChild("$key","$value");
        }
    }
    return $xmlObj;
}

$xml = new SimpleXMLElement("<?xml version=\"1.0\"?><return></return>");
$return_xml = arraytoxml($xml,$data);
print($return_xml);

其中 $data 是您的关联数组。


1
投票

您可以嵌套 foreach 循环以深入了解数组的更深层次元素。

foreach ($a as $array) {
    foreach ($array as $key => $value) {
        $output .= "\t\t\t<ID>". $value['LP']."</ID>\n";
        $output .= "\t\t\t<Produkt>". $value['Produkt'] ."</Produkt>\n";
    }
}

1
投票
foreach($a as $array) {
    foreach($array as $value) {
        echo $value['LP'];
        //etc...
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.