php 内容差异比较,PHP array_diff()函数比较数组差异

array_diff() 函数返回两个数组的差集数组。该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键值。

在返回的数组中,键名保持不变。

下面是关于使用比较数组差异的array_diff()函数具体应用案例

首先有两个不同的数组$arr_1,$arr_2:

第一种方法:

function fun($arr_1,$arr_2)

{ foreach ($arr_1 as $key => $val)

{ $bool = false; foreach ($arr_2 as $k => $v)

{ if($bool = ($val == $v))

{ break;

}

} if(!$bool)

{ $diff[$key] = $val;

}

}

}

这种虽然能够实现数组间的差异,如果数组长度达到一定的长度后,效率不容乐观。

第二种方法:

foreach ($arr_1 as $key => $val)

{ if(in_array($val,$arr_2))

{ unset($arr_1[$key]);

}

}

这种方式在其他博客上说可以和array_diff()媲美。

三种方式:

通过”array_flip();”将arr_2数组键值反转后,判断arr_1数组中的值是否在arr_2的键中

$arr_2 = array_flip($arr_2);foreach ($arr_1 as $key => $val)

{ if(isset($arr_2[$val]))

{ unset($arr_1[$key]);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值