使用 PHP 删除重复项

在查看数组中存在重复条目的问题时,通常是因为某个函数为我们提供了重复的结果,这可能是由于数据库查询设计不当;理想情况下,我们应该尝试修复查询,而不是从 PHP 解决问题——如果它是一个查询问题,那么从 PHP 解决它只会不必要地使代码复杂化。

在某些情况下,我们需要删除 PHP 中的重复项;就我个人而言,我发现在使用循环处理数组数据的情况下,有时可以非常有效地使用数组键来解决问题。

让我们尝试使用 foreach 来查找重复项:

function a_unique($array) {
  $array_unique = array();
  foreach ($array as $key => $value) {
    $array_unique["$value"] = true;
  }
  return array_keys($array_unique);
}

现在我们只需要调用 a_unique();当我们想从数组中删除重复值时的函数:

$array_duplicates_removed = a_unique($some_array);
foreach ($array_duplicates_removed as &$value) {
  echo $value . '<br>';
}

PHP 也有自己的内置函数来删除重复项,即 array_unique() 函数。

$input = array("a" => "green", "red", "b" => "green", "blue", "red");
  $result = array_unique($input);
  print_r($result);
PHP:如何删除数组中的重复值

要从 PHP 中的数组中删除重复的值,我们可以使用 isset 和数组键的组合。
这种查找重复项的方法通常非常快。

这是有效的,因为任何二进制字符串都可以用作数组键。
有了这些知识,我们就可以很容易地通过一个简单的算法来确定数组中是否已经存在某些东西:

function a_unique($array) {
  $array_unique = array();
  foreach ($array as $key => $value) {
    $array_unique["$value"] = true;
  }
  return array_keys($array_unique);
}
$array_made_unique = a_unique($array);
print_r($array_made_unique);
日期:2020-06-02 22:17:03 来源:oir作者:oir