【发布时间】:2020-05-30 00:38:12
【问题描述】:
我想按代理分组
XML 结构如下
<library>
<document>
<ProductName>somename1</ProductName>
<productAgent>Agent-01</productAgent>
<productType>Goods</productType>
</document>
<ProductName>somename3</ProductName>
<productAgent>Agent-02</productAgent>
<productType>Services</productType>
</document>
......
</library>
期待输出
<ul>
<li>Agent-01(productAgent)
<ul>
<li>somename1 - Goods</li>
</ul>
</li>
<li>Agent-02(productAgent)
<ul>
<li>somename3 - Services</li>
<li>somename6 - Goods</li>
</ul>
</li>
</ul>
我尝试了什么
<ul>
<li>Agent-01(productAgent)
<ul>
<?php foreach($xml->document as $item){
if ($item->productAgent == 'Agent-01' ) {
echo '<li>'.$item->ProductName.'-'.$item->ProductType.'</li>';
}
}
?>
</ul>
</li>
<li>Agent-02(productAgent)
<ul>
<?php foreach($xml->document as $item){
if ($item->productAgent == 'Agent-02' ) {
echo '<li>'.$item->ProductName.'-'.$item->ProductType.'</li>';
}
}
?>
</ul>
</li>
</ul>
问题
每次代理名称更改时,我都必须修改我的代码。当代理数量增加时,我的代码似乎不是一个好的解决方案。
【问题讨论】:
-
因此将数据收集到数组中,其中键是代理名称,值是产品。