我只是通过尝试在我从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循环。