从两个数组中仅删除一个匹配元素

时间:2017-11-03 17:21:26

标签: php

$array1 = array(1.99);
$array2 = array(1.99, 1.99, 2.99);

我想从$ array2中只删除$ array1的一个匹配元素。

所以,我想要的是:

1.99
2.99

我已尝试array_diff(),这将取消1.99两个,只留下2.99

3 个答案:

答案 0 :(得分:4)

您可以利用array_search仅从目标数组中返回一个匹配元素的事实,并使用它从$array2中删除它:

$array1 = array(1.99);
$array2 = array(1.99, 1.99, 2.99);

foreach ($array1 as $remove) {
  unset($array2[array_search($remove, $array2)]);
}

如果$array1可以包含$array2中不存在的元素,那么您需要添加array_search的结果不是假的检查。< / p>

答案 1 :(得分:0)

首先将两个数组合并,找到唯一元素。尝试array_merge()array_unique()

<?php
$array1 = array(1.99);
$array2 = array(1.99, 1.99, 2.99);

print_r(array_unique(array_merge($array1, $array2)));

?>

答案 2 :(得分:0)

我的做法与@iainn类似:

JWT