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

Php 从两个数组中仅删除一个匹配元素,php,Php,我只想从$array2中删除$array1的一个匹配元素 所以,我想要的是: $array1 = array(1.99); $array2 = array(1.99, 1.99, 2.99); 我尝试了array\u diff(),它将同时删除1.99,而留给我的只有2.99,您可以利用这样一个事实array\u search将只从目标数组返回一个匹配元素,并使用它从$array2中删除该元素: 1.99 2.99 如果$array1可以包含$array2中不存在的元素,则需要添加一项检查,

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

所以,我想要的是:

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

我尝试了
array\u diff()
,它将同时删除
1.99
,而留给我的只有
2.99

,您可以利用这样一个事实
array\u search
将只从目标数组返回一个匹配元素,并使用它从
$array2
中删除该元素:

1.99
2.99

如果
$array1
可以包含
$array2
中不存在的元素,则需要添加一项检查,以确保
数组搜索的结果不为假。

首先将两个数组合并以查找唯一的元素。尝试
数组合并()
数组唯一()


我做了与@iainn类似的事情:

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

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

?>

制作一个foreach并比较值。array1始终有1个元素?但如果$array1的元素在$array2中不存在,则将使用array_merge()将其推入
<?php
$array1 = array(1.99);
$array2 = array(1.99, 1.99, 2.99);

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

?>
foreach($array1 as $k=>$v){
    if(in_array($v, $array2)){
        unset($array1[$k]);
        break;  
    }
}