关于php的array_diff和array_diff_assoc的使用总结

好了,这是我第一次写csdn博文,允许兴奋一下

以下是我在开发一个商城系统时遇到使用array_diff的一些总结,写出来分享,也作为自己的一次回顾吧,过程很罗嗦,请各位看官耐心点微笑

一:使用array_diff和array_diff_assoc前奏

在商城开发中,经常要用到对数据的增删改查。其中,数据的更新,很多时候我们只需要对其中的一个字段,或者部分字段进行更新,而不需要全部字段一起更新,那么这里就需要找出哪些是需要更新的,哪些是不需要更新的。array_diff和array_diff_assoc均可以检查数组的差值,我们只需对比从数据库中获取的要更新的旧数据数组和提交的新数据数组作比较,array_diff和array_diff_assoc均可返回差数组。

二:学习array_diff 和array_diff_assoc

微笑array_diff()

 array array_diffarray $array1 , array $array2 [, array $... ] ),返回一个数组,数组中包括了array1中所有与其     他数组不同值的元素,另外对应的键名保留。但该函数只能对多维数组的第一维进行差值比较。而且这种对比时只对键值的对比,与键     名无关(只会找两个(或两个以上)数组中键值有区别的值)。

             例子:array_diff可以找出俩数组的差值c_pid:

                 

但是,如果array的任一键值和更改的值有重叠,则array_diff无法测出此更改值,如下:

         正常情况下array1中和array2中的比较中,更新的元素有c_pid和c_order,但结果只得到c_order的差                      值,为什么呢?

个人理解:array_diff()将array1的值和array2的值做对比,而不考虑键名,所以array1的c_pid的值        在array2的c_level中找到,故忽略c_pid的差值。

                 

               微笑array_diff_assoc()
		这个就不详细讲了,它和array_diff()用法一样,不同的是,它的比较是带上键名的,也就是说它找到的	就是几个数组中键名相同键值不同的项,也就是说,上面array_diff的第二种情况它是可以找出c_pid和	c_order两个差值的。各位看官如果不信,可以动手试试。小弟新手一枚,万事开头难,第一次写博文,即使	有点菜,希望各路大神海涵。

                                                 ---------2015.11.7

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值