Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在两个大小的阵列之间找到唯一的元素?_Php_Arrays - Fatal编程技术网

Php 如何在两个大小的阵列之间找到唯一的元素?

Php 如何在两个大小的阵列之间找到唯一的元素?,php,arrays,Php,Arrays,可能重复: 如何在两个大小的数组之间找到唯一的元素 $array1 = array(2,1,1,3,5,5); $array2 = array(2,1,3,5); 我相信您正在寻找加号,因为您的第一个数组具有重复的值,如果您希望两个数组中都存在值: 收益率: array(4) { [0] => int(2) [1] => int(1) [3] => int(3) [4] => int(5) } 当然,在本例中,这意味着$arr

可能重复:

如何在两个大小的数组之间找到唯一的元素

$array1 = array(2,1,1,3,5,5);   
$array2 = array(2,1,3,5); 

我相信您正在寻找加号,因为您的第一个数组具有重复的值

,如果您希望两个数组中都存在值: 收益率:

array(4) {
  [0] =>
  int(2)
  [1] =>
  int(1)
  [3] =>
  int(3)
  [4] =>
  int(5)
}

当然,在本例中,这意味着$array2已经是答案。我假设情况并非总是如此。

好的,所以我不能100%确定您所说的唯一性是什么意思。我假设您正在寻找一个在所有数组中出现一次的值。不是每次一次,而是总共一次

借用我找到的一些代码,你可以这样做-

$array1 = array(2,1,1,3,5,5);
$array2 = array(2,1,3,5);

$array1 = array_unique($array1);
$array2 = array_unique($array2);

$merge = array_merge($array1,$array2);

// thanks @gumbo!
$final = array_diff($merge, array_diff_assoc($merge, array_unique($merge)));
当我们执行这段代码时会发生什么?$final数组中将包含什么?那么,以您的数据为例,$final数组将为空,因为数组之间没有唯一的元素。如果在其中放入另一个元素,将填充$final数组。例如—

$array1 = array(2,1,1,3,5,5,7);
$array2 = array(2,1,3,5);

在这种情况下,$final将只包含元素7。

定义“唯一元素”?你的意思是在数组中找到一个在另一个数组中没有对应元素的值吗?你希望这个问题的答案是什么?[2,1,3,5]?你能改进你的问题并再次提问吗?……我想你对大量的操作有些着迷。@lev-我们正在寻找不同的元素。。。我只是从字面上理解问题的标题…你还是太过火了。格式化很糟糕,因为这是一个注释,但一旦$array1和$array2是唯一的:$unique=array\u merge array\u diff$array1、$array2、array\u diff$array2、$array1;顺便说一下,我在上面的评论中发布的算法是一个简单的对称差分。
$array1 = array(2,1,1,3,5,5,7);
$array2 = array(2,1,3,5);