用你认为效率最高的方式写一个php函数,函数可以从数组a和b中找出不...
发布网友
发布时间:2022-04-30 05:33
我来回答
共4个回答
热心网友
时间:2022-04-18 13:39
$a = array('a','b','c','d');
$b = array('b','c','e','f'); //b,c 重复
$c = array_merge(array_diff($a,$b), array_diff($b,$a));
//结果
array (size=4)
0 => string 'a' (length=1)
1 => string 'd' (length=1)
2 => string 'e' (length=1)
3 => string 'f' (length=1)
热心网友
时间:2022-04-18 14:57
print_r(array_diff($a,$b));
热心网友
时间:2022-04-18 16:32
直接调用array_diff
热心网友
时间:2022-04-18 18:23
// 除了判断数组,只使用了基本语法,实现找出不重复的值
function my_array_diff($a, $b){
if(is_array($a) && is_array($b)){
$c = array();
foreach($b as $k => $v){
$c[$v] => $v;
}
foreach($a as $k => $v){
if(isset($c[$v])){
unset($c[$v]);
}
}
return $c;
}
}
这就比较高效了,若是还考虑$a内的剩余值,可写为
function my_array_diff($a, $b){
if(is_array($a) && is_array($b)){
$c = array();
foreach($b as $k => $v){
$c[$v] => $v;
}
foreach($a as $k => $v){
if(isset($c[$v])){
unset($c[$v]);
unset($a[$k]); //加的
}
}
//加的
foreach($a as $k => $v){
$c[] = $v;
}
return $c;
}
}
我这么耐心的写了,不给分就没天理了