php删除数组中重复的单词

标签 php arrays

抱歉,英语不是我的母语,也许问题标题不太好。我想做这样的事情。

$str = array("Lincoln Crown","Crown Court","go holiday","house fire","John Hinton","Hinton Jailed");

这里是一个数组,“Lincoln Crown”包含“Lincoln”和“Crown”,因此删除下一个包含这2个单词的单词,并且“Crown Court(contain Crown)”已被删除。

在另一种情况下。 “John Hinton”包含“John”和“Hinton”,因此“Hinton Jailed(包含 Hinton)”已被删除。最终的输出应该是这样的:

$output = array("Lincoln Crown","go holiday","house fire","John Hinton");

由于我的php技术不好,不能简单地使用array_unique() array_diff(),所以提出问题寻求帮助,谢谢。

最佳答案

我认为这可能有用:P

function cool_function($strs){
    // Black list
    $toExclude = array();

    foreach($strs as $s){
        // If it's not on blacklist, then search for it
        if(!in_array($s, $toExclude)){
            // Explode into blocks
            foreach(explode(" ",$s) as $block){
                // Search the block on array
                $found = preg_grep("/" . preg_quote($block) . "/", $strs);
                foreach($found as $k => $f){
                    if($f != $s){
                        // Place each found item that's different from current item into blacklist
                        $toExclude[$k] = $f;
                    }
                }
            }
        }
    }

    // Unset all keys that was found
    foreach($toExclude as $k => $v){
        unset($strs[$k]);
    }

    // Return the result
    return $strs;
}

$strs = array("Lincoln Crown","Crown Court","go holiday","house fire","John Hinton","Hinton Jailed");
print_r(cool_function($strs));

转储:

Array
(
    [0] => Lincoln Crown
    [2] => go holiday
    [3] => house fire
    [4] => John Hinton
)

关于php删除数组中重复的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16221657/

相关文章:

php - 如何使用 Web 服务将 Joomla 登录 session 从一个网站共享到另一个网站?

php - 将 JSON 导入 Mysql

arrays - 使用 for 循环创建 []map[string]interface{} 时出错 -> panic : assignment to entry in nil map

Javascript for 循环发布表单

php - SQL 数据到 javascript 图表

arrays - 使用 NSArray 从 Parse 检索查询

java - 在 Java 中编写一个具有默认构造函数和定义如何初始化该类的对象的配置方法的类?

javascript - 如何在 angularjs 中将相同的文档推送到数组顶部

php - Laravel 从查询构建器获取特定列

java - 当数组充满了 get 方法中的数字时,如何对数组进行排序