PHP数组。检查2个PHP数组的值并将两者结合起来

时间:2016-05-23 15:42:04

标签: php arrays

我是PHP的初学者并且稍微搞乱了数组。

有没有办法检查2个数组的值并将两者结合起来(删除重复数据等)。我知道这个不清楚,所以我将提供一个例子:

$arrayOne = array("102", "103", "104", "105", "106");
$arrayTwo = array("101", "102", "103", "105", "106", "107");

请注意$ arrayOne没有" 101"和" 107"和$ arrayTwo没有" 104"

所以我想要做的是,将两个数组合并成$ array3之类的东西。当我运行print_r($ array3)时,我应该得到一个输出:

Array([0] => 102, [1] => 103, [2] => 105, [3] => 106)

所做的是:" 101"和" 107"已从$ arrayOne和" 104"中删除已从$ arrayTwo中删除,因为这些值对于两个数组都不常见。此外,所有重复的值也已被删除

2 个答案:

答案 0 :(得分:2)

array_intersect完成了这项工作。

$arrayOne = array("102", "103", "104", "105", "106");
$arrayTwo = array("101", "102", "103", "105", "106", "107");

$result=array_intersect($arrayOne, $arrayTwo);
print_r($result); //Array ( [0] => 102 [1] => 103 [3] => 105 [4] => 106 )

如果您需要新的索引,请尝试array_values

print_r(array_values($result)); // Array ( [0] => 102 [1] => 103 [2] => 105 [3] => 106 )

答案 1 :(得分:1)

使用此代码

$arrayOne = array("102", "103", "104", "105", "106");
$arrayTwo = array("101", "102", "103", "105", "106", "107");

$arrayThree = array();
foreach($arrayOne as $k => $v)
{
 if(in_array($v, $arrayTwo)){
   $arrayThree[] = $v;
 }
}

print_r($arrayThree);die;