我正在循环xml文件以显示它的内容,结构是:
<PRODUCT>
<ID><![CDATA[100860]]></ID>
<NAME><![CDATA[Blah blah blah blah]]></NAME>
<DESCRIPTION><![CDATA[An amazing shoe]]></DESCRIPTION>
<CATEGORY_NAME><![CDATA[SHOES]]></CATEGORY_NAME>
<MANUFACTURER><![CDATA[Club]]></MANUFACTURER>
<PREVIOUS_PRICE_WITH_VAT><![CDATA[38.40]]></PREVIOUS_PRICE_WITH_VAT>
<PRICE_WITH_VAT><![CDATA[19.90]]></PRICE_WITH_VAT>
<PRODUCT_URL><![CDATA[http://www.domain.com]]></PRODUCT_URL>
<IMAGE_URL><![CDATA[http://www.domain.com/100_a.jpg]]></IMAGE_URL>
<THUMBNAIL_URL><![CDATA[]]></THUMBNAIL_URL>
</PRODUCT>
到目前为止,我使用下面的代码来回应每个
<?php
// specify url of xml file
$urln = "xml_feeds.xml";
// get xml file contents
$xmln = simplexml_load_file($urln);
echo '<div style="width: 1000px; padding:10px; margin-bottom:10px; border:1px solid #000;">';
foreach($xmln->PRODUCT as $PRODUCTS)
{
echo '<p style="background-color: #069; color: #fff;">';
echo "[";
echo $PRODUCTS->CATEGORY_NAME;
echo "]";
echo "</p>";
}
echo '<div style="clear:both;"></div></div>';
?>
到目前为止,“守则”运作良好,但如何不向我显示重复记录。我的意思是不要向我展示相同的CATEGORY_NAME(类别名称)
谢谢!
答案 0 :(得分:1)
创建一个包含类别名称的数组,使用array_unique()
删除重复项,然后遍历新数组以回显元素:
$category_name_array = array();
foreach($xmln->PRODUCT as $products)
{
$category_name_array[] = (string) $products->CATEGORY_NAME
}
$category_name_array = array_unique($category_name_array);
foreach ($category_name_array as $category_name) {
echo '<p style="background-color: #069; color: #fff;">';
echo "[$category_name]";
echo "</p>";
}