如何将Element值为1的所有Element名称放入数组中?

时间:2013-02-27 09:54:21

标签: php xml simplexml

以下是我的XML数据的例子:

<features>
    <bedrooms>1</bedrooms>
    <bathrooms>1</bathrooms>
    <ensuite></ensuite>
</features>

我这样访问:

$data->features;

我基本上想要让它循环通过,如果它有一个1它将它添加到一个数组。

然后我可以内爆,并获得以下结果:

bedrooms, bathrooms

上面没有套房,因为没有套房。

如何循环并将其添加到数组?

我试过了:

foreach($data->features as $key => $val){
    $features[] = $val;
}

但这不起作用。

感谢。

2 个答案:

答案 0 :(得分:1)

foreach($data->features as $child){
    foreach ($child as $k => $v){
        if ($v == 1){
            $features[] = $k;
        }
    }
}

这似乎有效,但这是一个好方法吗?

答案 1 :(得分:0)

使用simplexml:

$lib  = simplexml_load_file("test.xml");
$children = $lib->children()[0];
$features = array();

foreach($children as $node){
  $features[] = $node->title;
}

print_r($features);