【发布时间】:2019-12-31 07:00:42
【问题描述】:
我有一个这样的数组:
SimpleXMLElement Object
(
[BrowseNodes] => SimpleXMLElement Object
(
[BrowseNode] => SimpleXMLElement Object
(
[BrowseNodeId] => 969391031
[Name] => Bambine e ragazze
[Children] => SimpleXMLElement Object
(
[BrowseNode] => Array
(
[0] => SimpleXMLElement Object
(
[BrowseNodeId] => 969394031
[Name] => Calze
)
[1] => SimpleXMLElement Object
(
[BrowseNodeId] => 3635837031
[Name] => Felpe
)
[2] => SimpleXMLElement Object
(
[BrowseNodeId] => 3635838031
[Name] => Giacche
)
[3] => SimpleXMLElement Object
(
[BrowseNodeId] => 3635839031
[Name] => Guanti da giocatore
)
[4] => SimpleXMLElement Object
(
[BrowseNodeId] => 969392031
[Name] => Maglie
)
[5] => SimpleXMLElement Object
(
[BrowseNodeId] => 4351854031
[Name] => Maglie per tifosi
)
[6] => SimpleXMLElement Object
(
[BrowseNodeId] => 3635840031
[Name] => Magliette da portiere
)
[7] => SimpleXMLElement Object
(
[BrowseNodeId] => 969393031
[Name] => Pantaloncini
)
[8] => SimpleXMLElement Object
(
[BrowseNodeId] => 3635841031
[Name] => Pantaloncini da portiere
)
[9] => SimpleXMLElement Object
(
[BrowseNodeId] => 3635842031
[Name] => Pantaloni
)
[10] => SimpleXMLElement Object
(
[BrowseNodeId] => 3635843031
[Name] => Tute da ginnastica
)
)
)
[Ancestors] => SimpleXMLElement Object
(
[BrowseNode] => SimpleXMLElement Object
(
[BrowseNodeId] => 969386031
[Name] => Abbigliamento
[Ancestors] => SimpleXMLElement Object
(
[BrowseNode] => SimpleXMLElement Object
(
[BrowseNodeId] => 937258031
[Name] => Calcio
[Ancestors] => SimpleXMLElement Object
(
[BrowseNode] => SimpleXMLElement Object
(
[BrowseNodeId] => 524013031
[Name] => Categorie
[IsCategoryRoot] => 1
[Ancestors] => SimpleXMLElement Object
(
[BrowseNode] => SimpleXMLElement Object
(
[BrowseNodeId] => 524012031
[Name] => Sport e tempo libero
)
)
)
)
)
)
)
)
)
)
)
我需要做的是使用 Anchestors 构建面包屑。列表末尾的应该是第一个。所以,举个例子:
Sport e tempo libero > 类别 > calcio...
我正在尝试以这种方式使用函数迭代 xml,但没有成功:
$rec=$result->BrowseNodes->BrowseNode->Ancestors->BrowseNode;
$bread=array();
function recursive($r)
{
do{
$bread[]=$r->BrowseNodeId;
recursive($r->Ancestors->BrowseNode);
}while(isset($r->Ancestors));
$bread=array_reverse($bread);
return $bread;
}
print_r(recursive($rec));
我在 stackoverflow 上发现了类似的东西,但没有任何建议可以帮助我解决这个问题。
【问题讨论】:
-
我不明白:
Fan shop来自哪里? -
我的错误。我编辑了帖子
-
你能把你的 XML 粘贴到某个地方吗?我想测试我的解决方案以确保它有效。
-
我在帖子里写的正是我从一个帮助我通过api调用外部服务的类得到的结果
-
如果您需要复制和粘贴解决方案,请提供 XML。否则,花几分钟时间来理解我的答案,你就会意识到它会起作用。我认为您甚至没有尝试根据您的回答来理解它。