从两个数组中仅删除一个匹配元素(Remove only one matching element from two arrays)
$array1 = array(1.99);
$array2 = array(1.99, 1.99, 2.99);
我想从$ array2中只删除$ array1的一个匹配元素。
所以,我想要的是:
1.99 2.99我已经尝试了array_diff() ,它将取出1.99并且只留下2.99 。
$array1 = array(1.99); $array2 = array(1.99, 1.99, 2.99);I want to remove only one matching element of $array1, from $array2.
so, What I want is:
1.99 2.99Ive tried array_diff(), which will take out both of the 1.99 and leave me with only 2.99.
最满意答案
你可以利用这个事实, 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不是false。
You can take advantage of the fact array_search will only return one matching element from the target array, and use it to remove that from $array2:
$array1 = array(1.99); $array2 = array(1.99, 1.99, 2.99); foreach ($array1 as $remove) { unset($array2[array_search($remove, $array2)]); }If $array1 can contain elements that aren't present in $array2 then you'll need to add a check that the result of array_search is not false.
更多推荐
发布评论