PHP 数组函数

array_diff() 函数比较两个或多个数组并返回一个包含第一个数组中的键和值的数组,前提是该值不存在于任何其他数组中。此函数是在 PHP 4.0 中引入的。

简单来说array_diff() 函数就是返回多个数组的差集,而且是以第一个数组为标准的差集。

语法

array_diff(array1,array2,array3...); 

参数

参数描述必须/可选
array1要比较的数组1必须
array2要比较的数组2必须
array3要比较的更多数组可选

返回值

它返回一个数组,其中包含 array1 中不存在于任何其他数组中的条目。

重要提示-比较时只比较键值

例子1

<?php
$x1=array(0=>"netbeans",1=>"eclipse",2=>"bluej");
$x2=array(3=>"bluej",4=>"eclipse",5=>"intellij");
$result=array_diff($x1,$x2);
print_r($result);
?> 

输出:

Array ( [0] => netbeans )

例子2

<?php
$frame1=array("1"=>"cakephp","2"=>"laravel","3"=>"symfony","4"=>"zend");
$frame2=array("5"=>"cakephp","6"=>"laravel","7"=>"symfony");
$php=array_diff($frame1,$frame2);
print_r($php);
?> 

输出:

Array ( [4] => zend )

例子3

<?php
$array1 = array('a', 'b', 'c', 'd', 'e', 'f');
$array2 = array('a', 'b', 'g', 'h');
$array3 = array('a', 'f', 'i');
print_r(array_diff($array1, $array2, $array3));
?> 

输出:

Array ( [2] => c [3] => d [4] => e )

例子4

<?php
$array1 = array( "red" , "green" , "blue" , "yellow" );
$array2 = array( "red" , "green" , "blue" );
$array3 = array( "green" , "red" , "blue" );
print_r(array_diff($array1,$array2,$array3));
?> 

输出:

Array ( [3] => yellow )

array_diff( ) 、array_diff_key( ) 和 array_diff_assoc( ) 之间的区别

<?php
$array1 = array("fruit1" => "apple", "fruit2" => "watermelon","friut3" =>"mango");
$array2 = array("fruit1" => "orange", "fruit2" => "watermelon","friut4" => "mango");
$value_differences = array_diff($array1, $array2);
$key_differences = array_diff_key($array1, $array2);
$assoc_index_differences = array_diff_assoc($array1, $array2);
print_r($value_differences);
print_r($key_differences);
print_r($assoc_index_differences);
?> 

输出:

Array( [fruit1] => apple )
Array ( [friut3] => mango )
Array ( [fruit1] => apple [friut3] => mango )

在使用 array_diff 时,$array1 中存在但另一个数组中不存在的值作为结果数组返回。同样,其他 PHP 数组差异函数返回数组的不同元素。