如何从没有属性函数的数组中获取属性

时间:2017-12-27 10:17:07

标签: php arrays xml

我想知道如何在不使用attrubites()的情况下从数组中读取属性。下面是我的xml的一部分:

<?xml version="1.0" encoding="UTF-8"?>
<offer file_format="IOF" version="1.0" generated="2017-12-27 11:04:38" >
<products currency="PLN">
    <product id="2055">
        <price gross="709" net="577"/>
    </product>

下面是我的代码,它读取所有属性。我想删除$product->attributes()->id,因为它返回一个我需要的数组值&#34; clean&#34;使用json_decode(json_encode($id), TRUE);然后$xmlArray[0];来读取值。

$xmlUrl = 'myfile.xml';
$xmlVar = simplexml_load_string(file_get_contents($xmlUrl));
foreach ($xmlVar AS $products) {
    foreach ($products AS $product) {
        $id = $product->attributes()->id;

        $xmlArray = json_decode(json_encode($id), TRUE);
        $withOutId = $xmlArray[0];
    }
}

我想通过移动

将此数组转换为字符串
json_decode(json_encode($id), TRUE);

在开始时但我不知道如何阅读属性。谢谢你的帮助。

亲切的问候

1 个答案:

答案 0 :(得分:0)

该行

$id = $product->attributes()->id;

不返回数组,它返回一个SimpleXMLElement对象。没有必要通过json_encode/decode运行它,你只需要将其转换为基本的PHP类型:

$id = (int) $product->attributes()->id;
var_dump($id); // int(2055)

另一种更简洁的访问属性的方法是使用数组样式语法:

$id = (int) $product['id'];
var_dump($id); // int(2055)