Php 数组中只有唯一的元素
有一个提要,我从中接收数据,其中有时会出现非常相似的记录。 我想确保数组包含最独特的记录。(按标题定义) 代码: 它们都进入$goodFeed,我只想要这些: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 谢谢 问题在于解析器没有传输正确的提要。回收了阵列结构,现在可以工作了。我也
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;
}
}
}