Php SimpleXML读取键/值对

Php SimpleXML读取键/值对,php,simplexml,amazon-simpledb,Php,Simplexml,Amazon Simpledb,我相信类似的事情以前也会出现,但我正在努力找到我在这里寻找的东西。我已经在这里读了很多次以前的答案,但从来没有问过或回答过我自己 我使用SimpleXML读取对AmazonSimpleDB查询的响应,结果如下所示: <Item> <Name>Item 1</Name> <Attribute> <Name>Title</Name> <Value>Item 1 Titl

我相信类似的事情以前也会出现,但我正在努力找到我在这里寻找的东西。我已经在这里读了很多次以前的答案,但从来没有问过或回答过我自己

我使用SimpleXML读取对AmazonSimpleDB查询的响应,结果如下所示:

<Item>
    <Name>Item 1</Name>
    <Attribute>
        <Name>Title</Name>
        <Value>Item 1 Title</Value>
    </Attribute>
    <Attribute>
        <Name>URL</Name>
        <Value>Item 1 URL</Value>
    </Attribute>
    <Attribute>
        <Name>Description</Name>
        <Value>Item 1 Description</Value>
    </Attribute>
    <Attribute>
        <Name>Site</Name>
        <Value>Item 1 Site</Value>
    </Attribute>
</Item>
<Item>
    <Name>Item 2</Name>
    <Attribute>
        <Name>Title</Name>
        <Value>Item 2 Title</Value>
    </Attribute>
    <Attribute>
        <Name>URL</Name>
        <Value>Item 2 URL</Value>
    </Attribute>
    <Attribute>
        <Name>Description</Name>
        <Value>Item 2 Description</Value>
    </Attribute>
    <Attribute>
        <Name>Site</Name>
        <Value>Item 2 Site</Value>
    </Attribute>
</Item>
[Name] -> Title
[Value] -> Item 1 Title
这就是我被卡住的地方。仍然在我现有的foreach()中循环遍历这些项,我想要一个“Attributes”数组,所以我可以选择,例如

[Title] -> Item 1 Title
[URL] -> Item 1 URL
等等

我很好地选择了这些项目,并回应了它们的名字,这真的是我所能做到的

由于这是一个如此新手的问题,我相信以前有人问过或回答过,我在其他任何地方都看不到答案,所以如果有人能给我指一个,我将非常感激


提前感谢

我不久前尝试过将twitter集成到一个站点中

我在搜索XML2ARRAY时发现了一段代码。正如您可能猜到的,这将XML数据转换为多维数组,如果您知道元素标题,可以使用FOREACH或命名数组调用

然后,您可以让它检查每次命中名为ATTRIBUTE的元素时,它是否将该数据保存到一个新数组中,使用名称作为键,使用值作为值,然后在完成时取消设置属性(以便更好地处理内存),并在新值数组的数组中设置一个新键


希望这对您的foreach循环有所帮助,创建一个新的foreach循环来创建属性数组

差不多

<?php

foreach($items as $item)
{
    $attributes = array();

    foreach($item->Attribute as $attribute)
    {
        $attributes[$attribute->Name] = $attribute->Value;
    }

    echo 'Item name:'.$item->Name.'<br />';
    echo 'Item attribute URL:'.$attributes['URL'].'<br />';
    echo 'Item attribute Description:'.$attributes['Description'].'<br />';
}

?>


注意:未经测试,请根据需要进行调整

非常完美,谢谢!我不太明白你可以从现有的变量中设置数组!再次感谢!我还没有尝试过这个,另一个解决方案很有效,看起来更简单,但非常感谢您的帮助!