PHP array_diff 函数

一、函数功能:
  计算出第一个数组与其他数组的键值差集(只考虑键值,不考虑键名)。比较两到多个数组,找出第一个数组中不包含在其他数组中的键值。数组的键名不参与比较,返回数组中保留键名不变。关于计算数组差集系列函数的区别请参考页面:PHP数组计算差集系列函数的区别
 
二、函数语法:
array array_diff ( $array1, $array2 [, $... ] )
 
三、函数参数:
参数名描述
$array1参与比较的第一个数组;
$array2参与比较的第二个数组;
...参与比较的更多数组;
 
四、返回值:
返回一个数组,数组中包含所有第一个数组中不包含在其他任何数组中的键值和对应的键名。
 
五、用法举例:
1、两个数组的比较:
  比较时忽视键名,返回结果中保留键名:
<?php
$arr1 = array('aa', 'b'=>'bb', 'aiezu.com');
$arr2 = array('a'=>'aa', 'bb', 'c');
print_r(array_diff($arr1, $arr2));
输出:
Array
(
    [1] => aiezu.com
)

2、三个数组的比较:
<?php
$arr1 = array('aa', 'b'=>'爱E族', 'aiezu.com');
$arr2 = array('a'=>'aa');
$arr3 = array('爱E族');
print_r(array_diff($arr1, $arr2, $arr3));
输出:
Array
(
    [1] => aiezu.com
)

3、array_diff()是将数组值强制转换为"string"后进行"==="(全等于)比较:
  由于false强制转换为string后为"",数组强制转换为string后为"Array",所以下面例子运行结果为一个空数组。
<?php
//爱E族: aiezu.com
$arr1 = array("", array(1));
$arr2 = array(false, array(2));
print_r(array_diff($arr1, $arr2));
输出:
Array
(
)

0 个评论

要回复文章请先登录注册