PHP - array_diff_assoc() 函数


定义和用法

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
)

例子

这里两个数组都有不同的键和所有对的相应值,例如 “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) $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
)