php怎么比较2个数组是否不同
时间 : 2023-02-16 21:38:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

PHP中比较两个数组是否不同的方法有很多种,最常见的比较方法有:

1、利用 array_diff()函数 比较两个数组的不同:array_diff()函数用来比较两个数组,返回差集,只有在第一个数组中存在、而在第二个数组中不存在的元素才会返回。

函数原型: array_diff ( array $array1 , array $array2 [, array $... ] )

使用示例:

$array1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");

$array2=array("a"=>"red","b"=>"green","d"=>"black");

print_r(array_diff($array1,$array2));

输出结果为:

Array ( [c] => blue [d] => yellow )

2、利用 array_udiff()函数 比较两个数组的不同:array_udiff()函数与 array_diff()函数类似,也用来比较两个数组,只不过它不判断键/值是否相同,而是会调用指定的比较函数来比较,从而判断两个数组的不同之处。

函数原型: array_udiff ( array $array1 , array $array2 , callback $data_compare_func )

使用示例:

$array1 = array("a" => "red", "b" => "green", "c" => "blue", "d" => "yellow");

$array2 = array("a" => "red", "b" => "green", "d" => "black");

// 比较函数,用来比较值

function data_compare($a, $b)

{

if ($a === $b){

return 0;

}

return ($a > $b)? 1:-1;

}

print_r(array_udiff($array1, $array2, 'data_compare'));

输出结果为:

Array ( [c] => blue [d] => yellow )

3、利用 array_diff_assoc()函数 比较两个数组的不同:array_diff_assoc()函数与 array_diff()函数类似,用来比较两个数组,只不过这个函数不仅比较值,还会比较键名是否相同。

函数原型: array_diff_assoc ( array $array1 , array $array2 [, array $... ] )

使用示例:

$array1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");

$array2=array("a"=>"red","b"=>"green","e"=>"blue");

PHP 比较两个数组是否不同是常用的操作,不同的场景下,有不同的实现方法。

首先,我们可以采用php中提供的array_diff()函数,该函数可以用来比较两个数组,只要任何一个数组元素不同,就会返回不同的元素。 例如:

$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");

$array2 = array("a" => "green", "yellow", "red");

$result = array_diff($array1, $array2);

print_r($result);

此时,输出的结果为:

Array ( [b] => brown [c] => blue )

其次,如果我们的数据量比较大,可以采用先排序再比较的方式:

$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");

$array2 = array("a" => "green", "yellow", "red");

sort($array1);

sort($array2);

/*sort()可以进行数组排序,返回值为true*/

if (count($array1) == count($array2)) {

if ($array1 == $array2) {

echo $array1 == $array2;

} else {

echo $array1 != $array2;

}

}

上述代码会比较$array1和$array2内容是否相同,若内容完全一致,输出为1;否则输出为0。

最后,我们也可以用array_diff_assoc()函数,这个函数用来比较两个数组的键值是否不同。例如:

$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");

$array2 = array("a" => "green", "b" => "yellow", "blue", "red");

$result = array_diff_assoc($array1, $array2);

print_r($result);

此时,输出的结果为:

Array ( [b] => brown )

以上就是PHP比较两个数组是否不同的几种实现方式,在不同的场景下可以选择合适的实现方式。