为了账号安全,请及时绑定邮箱和手机立即绑定

只有数组中的唯一元素

只有数组中的唯一元素

PHP
POPMUISE 2022-07-22 18:33:01
有一个提要,我从中接收数据,有时其中会出现非常相似的记录。 https://dl4.joxi.net/drive/2020/01/17/0028/2950/1842054/54/5abb738180.jpg我想确保数组包含最独特的记录。(按标题定义)代码:$new = array();$goodFeed = array();$itemlimit=0;$itemlimit2=0;foreach ($feed->get_items() as $item) {    if ($itemlimit==50) { break; };    $new[] = strtolower(trim($item->get_title()));    $itemlimit = $itemlimit + 1;}foreach ($feed->get_items() as $item) {    if ($itemlimit2==50) { break; };    $itemTitle = strtolower(trim($item->get_title()));    foreach($new as $item2) {        similar_text($item2, $itemTitle, $percent);        if ($percent < 78 && !in_array($item, $goodFeed)) {                $goodFeed[] = $item;                echo 'added: ' . $item->get_title() . '<br>Procent: ' . $percent . '<hr>';        }    }    $itemlimit2 = $itemlimit2 + 1;}我只希望唯一值(最少 80%)保留在 $goodFeed 数组中。现在它包含彼此非常相似的元素。原始提要包含具有名称的元素:1. Metro Redux on Nintendo Switch™ Announce Trailer; 2. Metro Redux on Nintendo Switch™ Announce Trailer [NA]; 3. Metro Redux für Nintendo Switch™ Ankündigungs-Trailer [DE]; 4. Metro Redux on Nintendo Switch™ Announce Trailer [ANZ]; 5. The Elder Scrolls Online: The Dark Heart of Skyrim Announcement Cinematic;6. The Elder Scrolls Online - The Dark Heart of Skyrim Cinematic Announcement Trailer他们都进入$goodFeed,我只想要这些:1. Metro Redux on Nintendo Switch™ Announce Trailer5. The Elder Scrolls Online: The Dark Heart of Skyrim Announcement Cinematic 谢谢!
查看完整描述

2 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

I have not tested but I think one of these should work for you.


foreach ($feed->get_items() as $item) { 

    if(!strtolower(trim($item->get_title())),$new){

        if ($itemlimit==50) { break; };

        $new[] = strtolower(trim($item->get_title()));

        $goodFeed[] = $item;

        $itemlimit = $itemlimit + 1;

    }

}


-------OR-------


foreach ($feed->get_items() as $item) { 

    if(!strtolower(trim($item->get_title())),$new){

        if(count($new)>0){

            $percent=0;

            foreach($new as $n){

                similar_text($n, strtolower(trim($item->get_title())), $percent);

                if($percent>78){

                    break;

                }

            }

            if($percent>78){

                    continue;

            }


            if ($itemlimit==50) { break; };

            $new[] = strtolower(trim($item->get_title()));

            $goodFeed[] = $item;

            $itemlimit = $itemlimit + 1;

        }

        else{

            $new[] = strtolower(trim($item->get_title()));

            $goodFeed[] = $item;

            $itemlimit = $itemlimit + 1;

        }

    }

}


查看完整回答
反对 回复 2022-07-22
?
万千封印

TA贡献1891条经验 获得超3个赞

问题是解析器没有传输正确的提要。回收了数组结构,现在它可以工作了。我也从这里得到了想法——相似度算法建议,使用二维关联数组

如果有人知道可以将提要合并为一个的良好且仍受支持的 RSS 解析器(NodeJs,Php),如果您能链接到它,我将不胜感激。


查看完整回答
反对 回复 2022-07-22
  • 2 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号