$a = ["a","b","c","a","b"];$b = ["a","c"];array_diff($a,$b);//output will be [b,b]但这不是一个适当的区别,它也可以是//output [b,a,b] <- this is what I am trying to achieve我尝试了 foreach 循环和 for 循环,但未能得到它...我试过的 Foreach 例子$a = ["a","b","c","a","b"];$b = ["a","c"];echo array_diff_custom($a,$b),"<br>";function array_diff_custom($a,$b){$result =0; foreach($a as $key=>$val){ foreach($b as $key2=>$val2){ if($val == $val2){ unset($a[$key]); } } }$result = count($a);return $result;}echo array_diff_custom($b,$a);for 循环示例,我试过了$a = ["a","b","c","a","b"];$b = ["a","c"];echo array_diff_custom($a,$b),"<br>";function array_diff_custom($a,$b){$result =0; for($i=0;$i<count($a);$i++){ for($j=0;$j<count($b);$j++){ //echo $a[$i]."-".$b[$j]."<br>"; if($a[$i] == $b[$j]){ unset($a[$i]); } } }$result = count($a);return $result;}echo array_diff_custom($b,$a);我使用count($resut)的功能,例如我创建,但你可以只是简单的return $a和可print_R(array_Diff_custom) 检查输出...
1 回答
aluckdog
TA贡献1847条经验 获得超7个赞
您可以仅从第一个数组中取消设置第二个数组中显示的项目一次
function array_diff_custom($a,$b){
foreach($b as $x){
if($k = array_keys($a, $x)) {
unset($a[$k[0]]);
}
}
return $a;
}
print_r(array_diff_custom($a,$b));
- 1 回答
- 0 关注
- 162 浏览
添加回答
举报
0/150
提交
取消