Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从简单的xml对象中获取字符串?_Php_Arrays_Object_Simplexml - Fatal编程技术网

Php 如何从简单的xml对象中获取字符串?

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)

因此,我有一个名为$locations的对象数组,每个对象都是一个
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消耗有点慢,也有点高。但是,是的,通常我会这么做:)可能重复?可能的评论?!