加载数组中第一次出现的项目

时间:2011-11-15 18:18:38

标签: php arrays simplexml duplicate-data

我正在使用SimpleXML来解析rss feed,如果SimpleXML返回的数组中的属性与我的字符串show data匹配。但有些项目在XML文件中重复,我想只使用它们的第一次出现。但我得到了所有重复的结果。

foreach($feed->city as $city){
    if(in_array($city['Name'], $cities)){
        echo $city['Name'].'<br />';
    }
}

其中$ feed-&gt; city是我的XML数据,$ cities是我的数组。

1 个答案:

答案 0 :(得分:1)

我会使用php的Xpath库来做到这一点。 Xpath 2.0可以直接执行此操作,但内置的Xpath 1.0语言仍然可以让您非常接近。

    <!-- language: lang-php -->
$xmlDocument = new DOMDocument();
    if ($xmlDocument->load('file.xml')) {
    $xpath = new DOMXPath($xmlDocument);
    $nodeList = $xpath->query('//city/@Name', $xmlDocument);

从这里你有一个DOMNodeList类。将它放在一个数组中并删除重复项。我现在还没有完成它的PHP环境,但我想提供一个不同于SimplyXML的方向。