如何不显示重复的文字?

安德夫

码:

    $title = 'Ev 134'; 

    foreach(Feed('https://www.vegvesen.no/trafikk/xml/savedsearch.rss?id=601') as $f ) {
        if (strpos($f->title, $title) !== false)
            echo "<span style='font-weight: 600;'>". $f->title.":". "</span>". "<br>". $f->description. "<br>";
    }

    foreach(Feed('https://www.vegvesen.no/trafikk/xml/savedsearch.rss?id=604') as $f ) {
        if (strpos($f->title, $title) !== false)
            echo "<span style='font-weight: 600;'>". $f->title.":". "</span>". "<br>". $f->description. "<br>";
    }

输出:

1. Ev 134 Seljestad - Horda, på strekningen Jøsendal - Røldal (Vestland) :
Description: Kolonnekjøring: Kolonnekjøring på grunn av uvær. Gjelder fra: 22.02.2020 20:18

2. Ev 134 Haukelifjell (Vestland/Vestfold og Telemark) :
Description: Midlertidig stengt: Stengt på grunn av uvær. Blir ikke åpnet i dag. Gjelder fra: 22.02.2020 09:16

3. Ev 134 Oslofjordtunnelen, på strekningen Drammen - Vassum (Viken) :
Description: Midlertidig stengt: Stengt i periodene: Mandag til fredag fra 07:00 til 09:00 og fra 15:00 til 18:00 for kjøretøy med totalvekt over 32 tonn. Gjelder fra: 22.01.2020 07:00 Gjelder til: 31.12.2020 18:00

4. Ev 134 Haukelifjell (Vestfold og Telemark/Vestland) :
Description: Midlertidig stengt: Stengt på grunn av uvær. Blir ikke åpnet i dag. Gjelder fra: 22.02.2020 09:16

在输出中添加了数字(1-4)和“描述:”标记^^,以便于解释问题。

有时(因为我从两个URL收集信息),同一文本多次出现。在此示例中:输出nr。2和4相同。如何添加功能以防止这种情况发生?

基本上,如果两个标题匹配100%,则仅显示一个标题和说明

任何帮助是极大的赞赏!

盐水

这很简单:

// new empty array
$feedToArray = [];

$title = 'Ev 134'; 

foreach(Feed('https://www.vegvesen.no/trafikk/xml/savedsearch.rss?id=601') as $f ) {
    if (strpos($f->title, $title) !== false) {
        $feedToArray[] = base64_encode(json_encode($f)); // <------ hash result in new array
    }
}

foreach(Feed('https://www.vegvesen.no/trafikk/xml/savedsearch.rss?id=604') as $f ) {
    if (strpos($f->title, $title) !== false) {
        $feedToArray[] = base64_encode(json_encode($f));
    }
}


$newArray = array_unique($feedToArray); // <--- remove duplicated hashed results

// loop new array
foreach($newArray as $hash ) {
    $f = json_decode(base64_decode($hash)); // <-- decode hash and use to echo.
        echo "<span style='font-weight: 600;'>". $f->title.":". "</span>". "<br>". $f->description. "<br>";
}

编辑:

添加了json_encode / json_decode对象

编辑2:

对不起,我以为标题是100%相同,但是当我现在看到它们不一样时,有什么办法可以轻松地更改此名称以搜索描述而不是标题?

是的,使用哈希描述作为数组键,例如

$feedToArray[base64_encode($f->description)] = base64_encode(json_encode($f));

但是现在您不需要 array_unique($feedToArray);

现在标题呢?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章