php - 如何删除数组中的重复项?

标签 php arrays

如何删除数组中的重复项?

例如,如果我有以下数组:

$array = array('1','1','2','3');

我希望它成为

$array = array('2','3');

所以我希望它在找到两个值时删除整个值

最佳答案

根据 PHP 版本,这应该适用于所有版本的 PHP >= 4.0.6,因为它不需要需要 PHP >= 5.3 的匿名函数:

function moreThanOne($val) {
    return $val < 2;
}


$a1 = array('1','1','2','3');
print_r(array_keys(array_filter(array_count_values($a1), 'moreThanOne')));

DEMO (更改下拉的PHP版本选择你使用的PHP版本)

之所以可行,是因为:

  1. array_count_values将遍历数组并为每个值创建一个索引,并在每次再次遇到它时递增它。
  2. array_filter将获取创建的数组并将其传递给之前定义的 moreThanOne 函数,如果它返回 false,则键/值对将被删除。
  3. array_keys将丢弃数组的 value 部分,创建一个数组,其值是已定义的键。这最后一步为您提供了一个结果,即删除了在原始数组中多次存在的所有值。

关于php - 如何删除数组中的重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16372292/

相关文章:

c++ - 处理索引不断变化的数组的数据结构

java - 需要使用 StdDraw 绘制二维数组的帮助

php - 将日期字段留空时,在 MySQL 数据库中将日期设置为 NULL

arrays - 查找元素数量差异最大的子数组

ios - 在 tableView 中显示数组

php - Cassandra:只选择最新的行

javascript - js Array.prototype.filter.call() - 有人能解释一下这段代码是如何工作的吗?

php - 使用 post 发送参数并获取到 SQL 服务器

找不到 PhpStorm laravel 5 方法

php - 将 php 变量导入样式表