Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数组中只有唯一的元素_Php_Arrays_Loops_Similarity - Fatal编程技术网

Php 数组中只有唯一的元素

Php 数组中只有唯一的元素,php,arrays,loops,similarity,Php,Arrays,Loops,Similarity,有一个提要,我从中接收数据,其中有时会出现非常相似的记录。 我想确保数组包含最独特的记录。(按标题定义) 代码: 它们都进入$goodFeed,我只想要这些: 1. Metro Redux on Nintendo Switch™ Announce Trailer 5. The Elder Scrolls Online: The Dark Heart of Skyrim Announcement Cinematic 谢谢 问题在于解析器没有传输正确的提要。回收了阵列结构,现在可以工作了。我也

有一个提要,我从中接收数据,其中有时会出现非常相似的记录。

我想确保数组包含最独特的记录。(按标题定义)

代码:

它们都进入$goodFeed,我只想要这些:

1. Metro Redux on Nintendo Switch™ Announce Trailer
5. The Elder Scrolls Online: The Dark Heart of Skyrim Announcement Cinematic 

谢谢

问题在于解析器没有传输正确的提要。回收了阵列结构,现在可以工作了。我也从这里得到了一些想法-

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;
        }
    }
}

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

您能解释一下您的代码在做什么,而不是做您希望它做的吗?@IncredibleHat我只希望在$goodFeed数组中保留唯一的值(最小80%)。现在它包含了彼此非常相似的元素。原始fida包含名称为1的元素。任天堂交换机上的Metro Redux™ 宣布预告片;2.Metro Redux für任天堂交换机™ Ankündigungs拖车[DE];3.任天堂交换机上的Metro Redux™ 宣布预告片[澳新银行];4.《长者卷轴》在线版:《天空边缘的黑暗之心》电影版;5.《老卷轴在线》——Skyrim电影预告片《黑暗之心》他们都进入$goodFeed,我只想要这些:1和4
1. Metro Redux on Nintendo Switch™ Announce Trailer
5. The Elder Scrolls Online: The Dark Heart of Skyrim Announcement Cinematic 
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;
        }
    }
}