php

php array_diff()函数

在 PHP 中,array_diff() 函数用于比较两个或多个数组,并返回那些只存在于第一个数组中的元素(键值对会被保留)。换句话说,它会从第一个数组中移除那些出现在其他数组中的值。


语法


array_diff(array $array, array ...$arrays): array

$array:要比较的主数组。

...$arrays:要与主数组比较的一个或多个数组。

返回值

返回一个数组,包含那些只在主数组中存在的值(键会保留)。


示例 1:简单数组比较


<?php

$array1 = ["a" => "red", "b" => "green", "c" => "blue"];

$array2 = ["a" => "red", "c" => "yellow"];


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

print_r($result);

?>

输出:


Array

(

    [b] => green

    [c] => blue

)

说明:array_diff() 返回了 $array1 中没有出现在 $array2 中的值。


示例 2:多个数组比较


<?php

$array1 = ["red", "green", "blue", "yellow"];

$array2 = ["red", "blue"];

$array3 = ["yellow", "black"];


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

print_r($result);

?>

输出:


Array

(

    [1] => green

)

说明:array_diff() 返回了 $array1 中没有出现在 $array2 和 $array3 中的值。


注意事项

比较时区分数据类型

array_diff() 是使用松散比较进行比较的,这意味着它会自动转换数据类型。

如果需要区分类型,可以使用 array_diff_assoc() 或严格比较的 array_udiff()。


键值保留

array_diff() 返回的结果会保留原数组中的键。


示例 3:类型敏感性


<?php

$array1 = [0, "0", 1, "2"];

$array2 = ["0", 2];


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

print_r($result);

?>

输出:


Array

(

    [0] => 0

    [2] => 1

    [3] => 2

)

说明:因为松散比较,"0" 和 0 被认为是相等的,而 1 和 2 是不同的。


实用场景

查找差异数据:比较用户输入的数据与现有数据。

移除重复值:用于从一个数组中剔除特定值集合。

如果需要更复杂的比较(例如自定义比较函数),可以使用 array_udiff() 或其他类似函数。



编辑:

阅读量:8

url链接:https://www.qozr.com/cms_php-arraydiff-han-shu.html

Tag标签: array_diff , php

同类新闻

更多新闻

Copyright © 千欧中软 版权所有 https://www.qozr.com seo | 网站建设 [渝ICP备15005074号] 渝公网安备50011802011077