PHP,合并两个数组,删除相同的值

标签 php mysql merge

有更好的方法吗? PHP 中的某个函数?

  $a = array(1, 2, 3, 4, 5, 6);
  $b = array(1, 2, 8, 9, 10, 3, 20);

  $c = array_merge($a, $b);
  $c = array_unique($c);

结果:1​​、2、3、4、5、6、8、9、10、20

或者有什么方法可以在 MySQL 中做到这一点吗?如果是这样:

$a = getMySQLArray("SELECT id FROM table1 WHERE ...")
$b = getMySQLArray("SELECT id FROM table2 WHERE ...")

我需要执行两个步骤(两个 SELECT)来获取我需要的所有 id,但有时两个数组可以包含相同的 id,所以我需要过滤它。我不太擅长创建一些更复杂的 SQL 请求。可以创建这样的东西吗?

最佳答案

您可以使用单个查询来获取 UNION 的不同值:

SELECT 
    id 
FROM table1 WHERE ...
UNION
SELECT 
    id 
FROM table2 WHERE ...

UNION 没有关键字 ALL 将仅返回不同的行,在您的情况下是不同的值。

SELECT ...
UNION [ALL | DISTINCT] SELECT ...
[UNION [ALL | DISTINCT] SELECT ...]

UNION is used to combine the result from multiple SELECT statements into a single result set. ...

The default behavior for UNION is that duplicate rows are removed from the result.

关于PHP,合并两个数组,删除相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24598162/

相关文章:

javascript - 在 PHP 中解析 Javascript 提取

php - MYSQL中如何逐行选择并设置为数组?

php - 在 MySQL 数据库中制作用于编辑字段的表单的快速而肮脏的方法

Ubuntu 14.04 上的 MySQL 5.5 和 SSL

php - 使用主键和复选框使用 PDO、PHP 和 MYSQL 删除语句

python-3.x - 为什么合并不相等匹配的行不适用于本地数据集?

php - mysql 连接两个表

php - Facebook 平台错误 : "Object cannot be liked"

tsql - TSQL合并错误处理

r - 合并表: classify output according to how rows where joined