Php 如何从简单的xml对象中获取字符串?
因此,我有一个名为$locations的对象数组,每个对象都是一个Php 如何从简单的xml对象中获取字符串?,php,arrays,object,simplexml,Php,Arrays,Object,Simplexml,因此,我有一个名为$locations的对象数组,每个对象都是一个simplexmlement,该数组中的每个对象: foreach ($locations as $key => $location) { var_dump($location); } die(); 看起来像: object(SimpleXMLElement)#2 (9) { ["@attributes"]=> array(2) { ["fb"]=> string(0)
simplexmlement
,该数组中的每个对象:
foreach ($locations as $key => $location) {
var_dump($location);
}
die();
看起来像:
object(SimpleXMLElement)#2 (9) {
["@attributes"]=>
array(2) {
["fb"]=>
string(0) ""
["ll"]=>
string(21) "44.1097932,-79.584537"
}
["label"]=>
string(8) "Bradford"
["name"]=>
string(8) "Bradford"
["address"]=>
string(52) "448 Holland Street West, Unit 3 Bradford, ON L3Z 2A4"
["phone"]=>
string(14) "(905) 551-9463"
["fax"]=>
object(SimpleXMLElement)#24 (0) {
}
["mngr"]=>
string(12) "OPENING SOON"
["email"]=>
object(SimpleXMLElement)#25 (0) {
}
["hours"]=>
object(SimpleXMLElement)#26 (0) {
}
}
现在我想要的是一个字符串,而不是对象,而是一个关联数组中每个对象的字符串name
,其键为$key
,值为name
。所以我做了:
$organizedLocations = array ();
foreach ($locations as $key => $location) {
var_dump($location, $location->name);
$organizedLocations[$key] = $location->name;
}
die();
注意var\u dump
<代码>$location->name是:
object(SimpleXMLElement)#23 (1) {
[0]=>
string(8) "Bradford"
}
这不是我想要的。在这个例子中,我想要的是“Bradford”,而不是带有字符串的对象。
我试过做$location->name->0
我甚至试过在foreach
中循环$location->name
,我试过$location->name[0]
这些都不起作用
如何将
Bradford
作为$key
的值从对象中取出并放入数组?可能的重复项。也许这些线就是你需要的
正确的方法是将其转换为字符串,这样我将得到我想要存储在数组中的实际值:
(string) $location->name;
为什么会被否决?我举了清楚的例子,问题已经解决了。我错过了什么?为了更好地回答问题,反馈在哪里?此链接应该可以帮助您:[将SimpleXML对象转换为数组][1][1]:@Yolo,如果您能够承担将XML编码和解码为JSON的开销,这可能是最好的解决方案。我发现在大型(3k+对象)XML对象上的RAM消耗有点慢,也有点高。但是,是的,通常我会这么做:)可能重复?可能的评论?!