php - 从逗号分隔的字符串中删除重复项

标签 php csv

是否有更好(更快)的解决方案来从逗号分隔的字符串中删除重复项?

public function d($dep) { 
    if (strpos($dep,',') !== false) {
        $nd = explode(',',$dep);
        $oa = array_unique($nd);
        $nx = (count($oa) > 1) ? implode(",",$oa) : $oa[0];
    }
    else {
        $nx = $dep;
    }

    return $nx;
}

谢谢你们。

最佳答案

你可以利用数组键的唯一性:

function d($dep) {
    return implode(',', array_keys(array_flip(explode(',', $dep))));
}

array_flip交换键值关联,因此值成为键,反之亦然。这将自动消除重复项。其运行时复杂度为 O(n)。

关于php - 从逗号分隔的字符串中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5134176/

相关文章:

php - 添加到mysql数组

php - 在php中将文件从一个文件夹移动到另一个文件夹

python - 从CSV移除最后一行

ruby - 是否有生成列 getter 方法的 Ruby CSV 解析器?

python - 以文本模式读取文件但也在 Python 中计算原始字节数?

php - 用于提取大括号之间文本的正则表达式

php - 在页面加载时从目录加载随机图像(没有文件名列表)

javascript - 使用 Google Analytics 跟踪 Wordpress 后端生成的 PDF

php - 在重新加载/重定向期间保持变量结果

python - 如何编写 python 代码以将多个 csv 组合到 excel 中,而无需将数字读取为文本 ..in excel?