所以我有一个名为$locations的对象数组,每个对象都是一个SimpleXMLElement
,这个数组中的每个对象:
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
的$value
。所以我做到了:
$organizedLocations = array ();
foreach ($locations as $key => $location) {
var_dump($location, $location->name);
$organizedLocations[$key] = $location->name;
}
die();
请注意var_dump
。 $location->name
是:
object(SimpleXMLElement)#23 (1) {
[0]=>
string(8) "Bradford"
}
这不是我想要的。在这种情况下,我想要的是"布拉德福德",而不是一些带有字符串的对象。我尝试做$location->name->0
我什至尝试在foreach
中循环$location->name
,我尝试$location->name[0]
这些都没有奏效。
如何将Bradford
从对象中获取到数组中作为$key
的值?
正确的方法是将其转换为字符串,这样我将获得我想要的实际值,然后存储在数组中:
(string) $location->name;
可能的重复项。也许这些线程是您需要的
强制将 SimpleXML 对象转换为字符串,而不考虑上下文
从 SimpleXMLElement 对象中获取值