class cr {
public $priv_member; function cr($a) {
$this->priv_member = $a;
}
}
function comp($a, $b) {
if ($a->priv_member === $b->priv_member) return 0;
return ($a->priv_member > $b->priv_member)? 1:-1;
}$a = array(new cr(1), new cr(11), new cr(4), new cr(5), new cr(7), new cr(9));
$b = array(new cr(2), new cr(11), new cr(6), new cr(9), new cr(10));
$c = array(new cr(4), new cr(11), new cr(7), new cr(8), new cr(9));print_r(array_uintersect_assoc($a, $b, $c, "comp"));a, b, c 这三个数组里都有元素 9 和 11 , 我想通过交集函数打印出 array(9, 11)
以上的array_uintersect_assoc为什么只能打印出11 ,貌似同时判断了下标, 但文档上并没说这个函数也判断下标的啊。。

解决方案 »

  1.   

    额 发觉用 array_uintersect 就好了
    看到好多数组函数后面都有个 _assoc  这个_assoc 是啥意思?
      

  2.   

    对 和下标有关
    array array_uintersect_assoc ( array array1, array array2 [, array ..., callback data_compare_func] )
    array_uintersect_assoc() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意和 array_uintersect() 不同的是键名也要比较。数据是用回调函数比较的。