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

时间:2014-07-06 16:54:21

标签: 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来创建更复杂的SQL请求。可以创建这样的东西吗?

1 个答案:

答案 0 :(得分:1)

您可以使用单个查询通过UNION获取这些不同的值:

SELECT 
    id 
FROM table1 WHERE ...
UNION
SELECT 
    id 
FROM table2 WHERE ...
没有关键字UNION

ALL只返回不同的行,在您的情况下为不同的值。

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

UNION用于组合多个SELECT语句的结果   到一个结果集。   ...

     

UNION的默认行为是从结果中删除重复的行。