Php 从两个数组中仅删除一个匹配元素
我只想从$array2中删除$array1的一个匹配元素 所以,我想要的是: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中不存在的元素,则需要添加一项检查,
$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;
}
}