我正在使用ebay API,试图获取一些交易历史记录数据。 当我向API发送请求时,它将返回以下内容:
print_r($soldlist);
///
SimpleXMLElement Object
(
[OrderTransaction] => Array
(
[0] => SimpleXMLElement Object
(
[Transaction] => SimpleXMLElement Object
(
[Buyer] => SimpleXMLElement Object
(
...
[1] => SimpleXMLElement Object
(
[Transaction] => SimpleXMLElement Object
(
[Buyer] => SimpleXMLElement Object
(
...
.....
所以我只对OrderTransaction感兴趣,所以我可以将它放在array_map函数中,如下所示:
array_map(function($order){....}, $soldlist->OrderTransaction);
购买php时会出现警告:
消息:array_map():参数2应该是数组
所以我做了print_r($soldlist->OrderTransaction)
并很想返回一个数组,它返回了它的第一个元素:
SimpleXMLElement Object
(
[Transaction] => SimpleXMLElement Object
(
[Buyer] => SimpleXMLElement Object
(....
我如何返回一个数组以用于map?
编辑: 有趣的是,如果我进行直接迭代,它的工作原理如下:
foreach($soldlist->OrderTransaction as $order){...}
答案 0 :(得分:3)
array_map
明确要求将数组作为第二个参数... xml元素不是数组而是具有traversable interface的对象。
这意味着您可以在这些元素上使用foreach
,但不能在array_map
上使用。
请注意,您可以按照注释中的建议将元素转换为数组。但是,在投射时您可能会丢失一些对象信息。因此,Foreach是更好的答案。