用你认为效率最高的方式写一个php函数,函数可以从数组a和b中找出不重复的值。
4个回答
展开全部
$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)
$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)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-28 · 知道合伙人互联网行家
关注
展开全部
print_r(array_diff($a,$b));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接调用array_diff
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
// 除了判断数组,只使用了基本语法,实现找出不重复的值
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;
}
}
我这么耐心的写了,不给分就没天理了
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;
}
}
我这么耐心的写了,不给分就没天理了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询