PHP数组从XML文件获取每个密钥/值



我只是通过尝试在我从XML文件中创建的数组中的某个层的键/值而感到困惑。print_r()的数组的一部分是:

SimpleXMLElement Object
(
Array
    (
        [category] => SimpleXMLElement Object
            (
                [@attributes] => Array
                    (
                        [settings] => maximum
                    )
                [cat_1] => 5.21
                [cat_2] => 5.05
                [cat_3] => 19.36
                [cat_4] => 21.97
                [cat_5] => 12.17
            )
    )
)

我正在尝试获取" cat_1,cat_2,cat_3 .."键,以便我可以将它们放在自己的数组中并将其用于其他物体。我可以做print_r($ array),但是当我尝试执行此操作时:

foreach ($array->category as $key => $val) {
$new_array[$key]= "$val";

}

$ array->类别似乎不是针对该列表。XML文件中的"单纯元对象"似乎与我通常使用数组的方式一样。有人知道我如何进入那些CAT_1 ET。列表?

请注意, $array->category是对象,而不是数组,而 cat_* properties 。由于它们都是公开的,只是使用:

$new_array = get_object_vars($array->category);

您应该使用

将纯正对象转换为数组
$array = json_decode(json_encode((array) $simplexmlob)), 1);

然后将$array['category']用于其他事情。无需使用foreach循环。

最新更新