array_diff_assoc()函数比较两个(或多个)数组并返回差值。
此函数比较两个(或多个)数组的键和值,并返回一个包含array1条目但在array2或array3,...等中不存在的条目的数组。
此函数不同于array_diff()函数,因为array_diff()仅使用值与其他数组进行比较,而array_diff_assoc()函数在与其他数组进行比较时同时使用键和值。
array array_diff_assoc( array $array1, array $array2 [, array $array3...] );
序号 | 参数及说明 |
---|---|
1 | array1 (必填) 是要与之比较的数组 |
2 | array2 (必填) 它是一个要与第一个数组进行比较的数组 |
3 | array3(选填) 它是一个要与第一个数组进行比较的数组 |
函数array_diff_assoc()返回一个数组,其中包含array1中的所有值,这些值在任何其他具有相同键的数组中都不存在。
此函数最早是在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 )
在这里,两个数组对于所有对都有不同的键和相应的值,例如"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 )
下面示例说明了,仅当(string)$elem1 ===(string)$elem2时,键=>值(key=>value)对中的两个值才视为相等。
<?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 )