1.Thinkphp的distinct(field)查询数据库用作查询去重时,如果后面加上order则是对distinct检索出来的结果进行排序,而不是先排序再distinct去重,曾经想通过order对检索结果进行顺序控制,发现失败!切记~~~~
2.array_unique数组去重,当初想对一个二维数组进行处理的时候,发现错误!感觉有点郁闷。预处理数据为:[[1=>123, 2=>321], [1=>321, 2=>123]],从表面上看,应该保留两个信息,没想到两个都去掉了,仔细一看手册,发现是直接把数组转化为字符串比较,这样的话,多维数组下面,只看第一维,后面的都转为Array,这样看,还真的是一样。本人测试了一下,还真的是。。。以下是测试数据
$data = [[1=>123, 2=>321], [1=>321, 2=>123, 3=>666], 3=>4];
foreach($data as $k => $v)dump((string)$v);
dump(array_unique($data));
结果:
结果显示与猜测一致。。。只能说我太天真!调试了很久,就当买个教训吧!