我有一段 PHP 代码返回一个具有 XML 结构的对象变量,如下所示:
<food1>
<name1>Belgian Waffles</name1>
<prices1>
<price1>$5.95</price1>
<price2>$8.95</price2>
</prices1>
<description1>Two of our famous Belgian Waffles with plenty of real maple syrup</description1>
<calories1>
<AA>
<A1>650</A1>
<A2>652</A2>
<A3>653</A3>
</AA>
<BB>
<B1>750</B1>
<B2>751</B2>
<B3>752</B3>
</BB>
</calories1>
</food1>
如何在 PHP 中编写一个 foreach 循环来生成一个像上面的 $food1
这样的变量?然后我的计划是将 $food1
值插入 MySQL 数据库中的文本字段,以便在需要时解析和处理 $food1
数组。
$food1 = array(
"food1" => array
(
"name1" => Belgian Waffles,
"prices1" => array (
price1 => $5.95
price2 => $8.95
),
"description1" => 'Two of our famous Belgian Waffles with plenty of real maple syrup',
"calories1" => array
(
"AA" => array (
A1 => 650
A2 => 652
A3 => 653
),
"BB" => array (
B1 => 750
B2 => 752
B3 => 753
),
)
);
最佳答案
您的 XML 中的一条注释会更改此内容:
<name2>Belgian Waffles</name1>
到
<name1>Belgian Waffles</name1>
试试这段代码:
<?php
$xml_string = '<food1>
<name1>Belgian Waffles</name1>
<prices1>
<price1>$5.95</price1>
<price2>$8.95</price2>
</prices1>
<description1>Two of our famous Belgian Waffles with plenty of real maple syrup</description1>
<calories1>
<AA>
<A1>650</A1>
<A2>652</A2>
<A3>653</A3>
</AA>
<BB>
<B1>750</B1>
<B2>751</B2>
<B3>752</B3>
</BB>
</calories1>
</food1>';
$xml = simplexml_load_string($xml_string);
$json = json_encode($xml);
$out = array($xml->getName() => json_decode($json, true));
print_r($out);
?>
关于php - 如何将 XML 数据的元素转换为 PHP 中的单个关联数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28977919/