定义和用法
array_diff_assoc() 函数比较两个数组(或多个)数组并返回差值。
array_diff_assoc() 函数比较两个(或多个)数组的键和值,并返回一个数组,该数组包含 array1 但不存在于 array2 或 array3 条目等等。
array_diff_assoc() 与 array_diff() 函数不同,因为 array_diff() 仅使用值与其他数组进行比较,而 array_diff_assoc() 函数在与其他数组进行比较时使用键和值。
语法
array array_diff_assoc( array $array1, array $array2 [, array $array3...] );
参数
| 参数 | 描述 |
|---|---|
| array1 (Required) |
要比较的数组 |
| array2 (Required) |
与第一个数组进行比较的数组 |
| array3 (Optional) |
与第一个数组进行比较的数组 |
返回值
函数 array_diff_assoc() 返回一个数组,其中包含 array1 中不存在于具有相同键的任何其他数组中的所有值。
PHP 版本
此函数最初是在 PHP 版本 4.3.0 中引入的。
例子
请尝试以下示例。这里 “a” => “orange” 和 “c”=>“banana” 都存在于两个数组中,因此它在结果中不可用 -
<?php
$input1 = array( "a"=>"orange", "b"=>"mango", "c"=>"banana");
$input2 = array( "a"=>"orange", "b"=>"apple", "c"=>"banana");
print_r(array_diff_assoc($input1, $input2));
?>
产生结果 -
Array
(
[b] => mango
)
(
[b] => mango
)
例子
这里两个数组都有不同的键和所有对的相应值,例如 “a”=>“orange” 在第二个数组中不存在,同样其他键值对在第二个数组中不存在,因此它们将在结果中可用 -
<?php
$input1 = array( "a"=>"orange", "b"=>"mango", "c"=>"banana");
$input2 = array( "a"=>"banana", "b"=>"apple", "c"=>"orange");
print_r(array_diff_assoc($input1, $input2));
?>
产生结果 -
Array
(
[a] => orange
[b] => mango
[c] => banana
)
(
[a] => orange
[b] => mango
[c] => banana
)
例子
此示例阐明了仅当 (string) $elem 1 === (string) $elem 2 时,key => 值对中两个值才被视为相等。−
<?php
$input1 = array(0, 5, 20);
$input2 = array("00", "05", "20");
$result = array_diff_assoc($input1, $input2);
print_r($result);
?>
产生结果 -
Array
(
[0] => 0
[1] => 5
)
(
[0] => 0
[1] => 5
)

