不要在xml文件中显示重复记录

时间:2013-11-28 13:12:38

标签: php xml

我正在循环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(类别名称)

谢谢!

1 个答案:

答案 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>";
}