Php 合并两个数组

Php 合并两个数组,php,mysql,Php,Mysql,我在两个MYSQL表中有两个数组。我想循环第一个数组(array1),如果第二个数组(array2)中存在一个值,则跳过第二个数组(array2)中的该值并继续检查。如果不存在,则将其添加到第二个数组(array2) 例如: array1 = 1,2,3,4,5 array2 = 2,4,6,8,10 因此,我们在array1上循环以检查array2中是否存在元素。如果它没有将其添加到数组2中。因此,array2的新值应为: array2= 1,2,3,4,5,6,8,10

我在两个MYSQL表中有两个数组。我想循环第一个数组(array1),如果第二个数组(array2)中存在一个值,则跳过第二个数组(array2)中的该值并继续检查。如果不存在,则将其添加到第二个数组(array2)

例如:

   array1 = 1,2,3,4,5
   array2 = 2,4,6,8,10
因此,我们在array1上循环以检查array2中是否存在元素。如果它没有将其添加到数组2中。因此,array2的新值应为:

   array2= 1,2,3,4,5,6,8,10
这就是我所做的,它不起作用。它删除array2的所有值并添加新值。它不会忽略公共值。请帮忙

    $array1= explode(",", $results1);
$array2= explode(",", $results2);
foreach($array1 as $key => $value) {
    if (in_array($value, $array2)) {
        if ($results2 != "") { 
            $results2= "$results2,$value";
        } else { $results2= "$value"; }
          mysql_query("UPDATE datas SET results2 ='$results2' 
                    WHERE r2_id ='$r2_id'")
                    or die ("Died".mysql_error());
    } else {
        //Do nothing
    }
}

我做错什么了吗?请帮忙。我做这件事已经有一段时间了

这里有一个合并阵列的单行程序:

$merged = array_unique(array_merge(explode(",", $results1), explode(",", $results2)));
$string = implode(",", $merged);

mysql_query("UPDATE datas SET results2 = '$string' WHERE r2_id = $r2_id") or die("Died ".mysql_error());
至于你做错了什么,因为你问:

  • 你的第一个条件是向后。如果该值已在数组2中,则您不想执行任何操作,而是在缺少该值且应添加该值时不执行任何操作
  • 当连接更清晰(更容易阅读,也更难犯不被注意的错误)时,可以大量使用双引号字符串
  • 每次更改
    $results2
    时,只要在生成整个字符串后更新一次,就会发出更新查询
  • 您可以在查询中引用看起来是数值的($r2\u id)。MySQL不会对此抱怨,但当从字符串到数字的隐式转换没有产生预期的结果时,您可能会感到惊讶
  • 如果其中没有任何内容,则不需要else子句
  • 首先在数据库表的列中存储序列化数组通常是错误的

您的第1行可能更简单:
$merged=array_unique(explode(',',$results1','.$results2))数组
而不是
1,2,3,4,5,6,8,10
。如何使其显示
1,2,3,4,5,6,8,10
而不是
Array
-用于测试。抱歉,必须将其转换为字符串,我将为您更新我的代码