php - 如何将 XML 数据的元素转换为 PHP 中的单个关联数组?

标签 php mysql arrays xml oop

我有一段 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/

相关文章:

java - 需要 N Queens 程序的帮助(检查对角线)

java - 三元组的最大值和最小值

javascript - 数组的总和,从数据库中获取数据

php - 在我的表格中,颜色只出现在偶数行上

php - 您可以使用 OR 将多个参数传递给 SQL/PHP 单绑定(bind)语句吗?

php - 在 MySQL 语句中返回\'

mysql - 创建自定义 ID 时出现 ExecuteScalar 错误

php - 如果我使用沙箱,IPN 无效

mysql - 当我从 MySql 导入日期值时,DataGrid 显示日期时间

mysql - Magento 中的自定义查询以将数据插入数据库