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比较两个数组是否不同的几种实现方式,在不同的场景下可以选择合适的实现方式。
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章