array_diff 计算数组的差集 &reftitle.description; arrayarray_diff arrayarray arrayarrays 对比 array 和其他一个或者多个数组,返回在 array 中但是不在其他 array 里的值。 &reftitle.parameters; array 要被对比的数组 arrays 和更多数组进行比较 &reftitle.returnvalues; 返回一个数组,该数组包括了所有在 array 中但是不在任何其它参数数组中的值。注意键名保留不变。 保留数组 array 里的键。 &reftitle.changelog; &Version; &Description; &array.changelog.require-only-one; &reftitle.examples; <function>array_diff</function> 例子 "green", "red", "blue", "red"); $array2 = array("b" => "green", "yellow", "red"); $result = array_diff($array1, $array2); print_r($result); ?> ]]> $array1 中多次出现的值一样处理,输出结果为: blue ) ]]> <function>array_diff</function> 不匹配类型的示例 两个元素只有在 (string) $elem1 === (string) $elem2 相等时视为一致。 也就是字符串转换表达相同。 v = $v; } public function __toString() { return $this->v; } } $source = [new S('a'), new S('b'), new S('c')]; $filter = [new S('b'), new S('c'), new S('d')]; $result = array_diff($source, $filter); // $result 包含了一个 S('a'); 实例 ?> ]]> 想要使用函数来比较,可使用 array_udiff &reftitle.notes; 注意本函数只检查了多维数组中的一维。当然可以用 array_diff($array1[0], $array2[0]); 检查更深的维度。 &reftitle.seealso; array_diff_assoc array_udiff array_intersect array_intersect_assoc