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;
array_diff 例子
"green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);
print_r($result);
?>
]]>
在 $array1 中多次出现的值一样处理,输出结果为:
blue
)
]]>
array_diff 不匹配类型的示例
两个元素只有在 (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