我现在做修改文章操作,用到 array_diff()
函数,对比提交的新数据和数据库里面的旧数据不一样的地方,结果有一个字段不一样却没对比出来,望求解,比如以下两个数组
$new=["abc"=>"abc","c_isrecommend"=>"1", "c_singer"=>"1"];
$old=["abc"=>"abc","c_isrecommend"=>"0", "c_singer"=>"1"];
print_r(array_diff($new,$old));
有差别,但对比的结果是空数组
Array ( )
不知道怎么回事,有知道为什么这样的大神么?求解啊,如果这个函数不准确,有没有别的方法能对比两个数组的差别并筛选出来的方法呢?望解答
array_diff 是返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。
你$new的c_isrecommend=>1 的值在$old的已经存在了 和$old的c_singer=>1相等
你把$new改成 $new = array(‘abc’=>’abc’,’c_isrecommend’=>’2′,’c_singer’=>’1′);就行了
楼主何不试试这个呢:array_diff_assoc
函数只检查了 数组中的一维