我只是试图在我从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文件中的“SimpleXMLElement对象”似乎妨碍了我通常使用数组的方式。有谁知道我怎么能找到那些猫咪。列表?
答案 0 :(得分:1)
请注意,$array->category
是一个对象,而不是一个数组,而cat_*
是属性。因为他们都是公开的,只需使用:
$new_array = get_object_vars($array->category);
答案 1 :(得分:0)
您应该使用
将simpleXML对象转换为数组$array = json_decode(json_encode((array) $simplexmlob)), 1);
然后使用$array['category']
进行其他操作。没有必要使用foreach循环。